Python 优化硒';s异常处理
我的代码在找不到元素时最有可能引发异常。与其他元素相比,某些元素更容易出现这种情况,尽管我不能确定根据条件,任何给定元素都不会出现问题Python 优化硒';s异常处理,python,selenium,selenium-webdriver,Python,Selenium,Selenium Webdriver,我的代码在找不到元素时最有可能引发异常。与其他元素相比,某些元素更容易出现这种情况,尽管我不能确定根据条件,任何给定元素都不会出现问题 留出time.sleep()和driver.implicitly\u wait,是为每个元素构建无故障生产级爬虫以wait.until.presence\u element\u located()的唯一方法吗?有没有更有效的方法来处理这个问题?为什么driver.implicitly_wait不够好?@AlexanderStarostin:因为等待的可变性。例如
留出
time.sleep()
和driver.implicitly\u wait
,是为每个元素构建无故障生产级爬虫以wait.until.presence\u element\u located()
的唯一方法吗?有没有更有效的方法来处理这个问题?为什么driver.implicitly_wait不够好?@AlexanderStarostin:因为等待的可变性。例如,95%的“我的元素”搜索可能在1秒或更短的时间内完成,但其中一些可能需要2秒或3秒。我不想对所有事情都做3秒钟的隐式等待,但我不能混合隐式和显式。此外,更容易处理显式等待的异常。我不能将每个元素搜索都放在try:
中,因为隐式等待可能会返回异常。@AutomaticStatic我想您误解了隐式等待的工作原理。它不等待完全超时,而是只在需要时等待到超时。此外,可以随时更改超时以提供更长或更短的等待。当然,我非常喜欢使用WebDriverWait
或类似的方法进行所谓的“显式等待”,即使我使用了包装器或帮助器方法,甚至对于每个find_元素
,因为我认为意图更清楚。我将避免评论使用WebDriver爬行任意页面是否是一个好主意。