页面似乎已加载但无法使用 selenium/python 访问数据
Page seems to load but not able to access data using selenium/python
我正在等待页面加载 WebDriverWait
,但它仍然是 运行 超时异常,我不明白为什么。我还检查以确保 chrome 开发人员检查器中存在 XPath 并确认它存在。如果有人可以帮助我,这里是片段。
谢谢!
url2 = 'https://www.rotorooter.com/adelantoca/'
driver.get(url2)
delay = 3
try:
name = WebDriverWait(driver, delay).until(EC.presence_of_element_located((By.XPATH, '/html/body/app-root/div/app-not-found/div/app-local-page/app-local-map/div/div/div/div[2]/div[4]/div[1]/strong')))
print("Page is ready!",name)
except TimeoutException:
print("Loading took too much time!")
Returns:
Loading took too much time!
这里有几个问题。
- 主要问题是您正在检查的元素远离最初可见的屏幕视图。因此,当页面打开时,直到执行向下滚动时才会加载此元素。这就是您的
WebDriverWait
超时失败的原因。
- 您永远不应该使用像
/html/body/app-root/div/app-not-found/div/app-local-page/app-local-map/div/div/div/div[2]/div[4]/div[1]/strong
这样的自动生成的定位器。它们极不可靠且易碎。
- 建议为
WebDriverWaits
使用更大的超时。制作它们也应该可能会导致因低互联网/缓慢网页引起的错误错误。在正常情况下,它们不会导致额外的运行时间,因为 Selenium 代码将在检测到已检查的条件后立即继续。
我正在等待页面加载 WebDriverWait
,但它仍然是 运行 超时异常,我不明白为什么。我还检查以确保 chrome 开发人员检查器中存在 XPath 并确认它存在。如果有人可以帮助我,这里是片段。
谢谢!
url2 = 'https://www.rotorooter.com/adelantoca/'
driver.get(url2)
delay = 3
try:
name = WebDriverWait(driver, delay).until(EC.presence_of_element_located((By.XPATH, '/html/body/app-root/div/app-not-found/div/app-local-page/app-local-map/div/div/div/div[2]/div[4]/div[1]/strong')))
print("Page is ready!",name)
except TimeoutException:
print("Loading took too much time!")
Returns:
Loading took too much time!
这里有几个问题。
- 主要问题是您正在检查的元素远离最初可见的屏幕视图。因此,当页面打开时,直到执行向下滚动时才会加载此元素。这就是您的
WebDriverWait
超时失败的原因。 - 您永远不应该使用像
/html/body/app-root/div/app-not-found/div/app-local-page/app-local-map/div/div/div/div[2]/div[4]/div[1]/strong
这样的自动生成的定位器。它们极不可靠且易碎。 - 建议为
WebDriverWaits
使用更大的超时。制作它们也应该可能会导致因低互联网/缓慢网页引起的错误错误。在正常情况下,它们不会导致额外的运行时间,因为 Selenium 代码将在检测到已检查的条件后立即继续。