Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 优化硒';s异常处理_Python_Selenium_Selenium Webdriver - Fatal编程技术网

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爬行任意页面是否是一个好主意。