【问题标题】:If element does not exist, end the job [Dealing with pagination]如果元素不存在,则结束工作[处理分页]
【发布时间】:2018-04-09 23:10:58
【问题描述】:

我有一个页面,其中要循环的元素数量不容易知道。因此,我已经通过 Href“a”(364 匹配)使作业循环,当它找不到“下一步”按钮时,我希望作业结束。

I have tried:
try:
    element = driver.find_element_by_xpath('//span[text()="Next Page"]')
except NoSuchElementException:
    pass

#except IOError:
    #pass
#except OSError:
    #pass

以及其他变体和缩进。

我的完整代码是here(由于字符限制,它不允许我在这里完全发布)

【问题讨论】:

  • 提供的try/except 块应该按预期工作。它有什么问题?
  • @Andersson 好吧,当找不到“下一步”按钮时似乎会产生错误。我宁愿它 - 当它找不到元素时,它可以这么说来完成工作。
  • @Andersson ibb.co/ezBkMR

标签: python python-3.x selenium exception web-scraping


【解决方案1】:

下面的代码应该允许您在到达最后一页后关闭浏览器和 WebDriver 会话

from selenium.common.exceptions import NoSuchElementException

try:
    element = driver.find_element_by_xpath('//span[text()="Next Page"]')
except NoSuchElementException:
    driver.quit()

【讨论】:

  • 谢谢,我现在就测试一下。它会关闭驱动程序并停止作业,还是会关闭作业并继续其余的作业创建错误。
  • 它应该破坏脚本的“Selenium”部分。如果有更多的代码(与WebDriver无关)要执行,就会执行,如果没有,就应该关闭job
  • 是的。是否没有停止作业或跳过部分作业命令。如果没有办法,我想我将不得不忍受错误通知
  • 我可能会进一步调查,但我想至少该作业会按预期运行,尽管出现错误消息。
猜你喜欢
  • 2021-07-15
  • 2019-08-18
  • 2017-10-18
  • 2016-04-16
  • 1970-01-01
  • 2018-12-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多