【问题标题】:Selenium - Refresh page that takes too long to loadSelenium - 刷新页面加载时间过长
【发布时间】:2018-04-11 00:12:03
【问题描述】:

我有一个forloop,它会从列表中打开一个网页,截取页面,然后移动到列表中的下一个网页。

我遇到了浏览器无法加载页面的问题,但简单的手动刷新就可以解决问题并让脚本再次运行。如何合并刷新计时器,以便如果加载页面时间超过 5 秒,页面会刷新?

我不确定如何合并时间库或 driver.refresh() 命令。

我会在下面留下我的代码。

for links in link:
    driver.get(links)
    pyautogui.screenshot('/Users/user/Desktop/autoscreen/Screenshots/hehh/'+ links + '.png').    

【问题讨论】:

  • 你的代码在哪里甚至会尝试超时和页面刷新?

标签: selenium selenium-chromedriver pyautogui


【解决方案1】:

一般情况下,你需要告诉驱动程序等待多长时间才会超时,然后捕获超时异常。在超时异常中,调用 driver.refresh()。您可能需要使它更健壮一些,但这就是要点。

# Wait up to 30 seconds for page to load
driver.implicitly_wait(30)

for link in links:
    try:
         driver.get(link)
         pyautogui.screenshot('/Users/user/Desktop/autoscreen/Screenshots/hehh/'+ links + '.png')
     except TimeoutException:
         driver.refresh()

【讨论】:

  • 非常感谢!在这种情况下,您认为显式等待会更好吗?
  • 如果我可以识别特定的目标元素,我通常倾向于显式等待。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-09-30
  • 2011-11-21
  • 2018-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多