我有这个尝试...除了块:
try:
browser.find_element('xpath', '/html/body/ul').click()
wait = WebDriverWait(browser, 10)
wait.until(EC.visibility_of_element_located(('xpath', '/html/body/div[1]/div[3]/span')))
return ' '.join(browser.find_element('id', 'response').text.split('\n')[0].split()[:-1])
except ElementNotInteractableException or NoSuchElementException or TimeoutException:
return 'No result'
我仍然得到这个例外:
wait = WebDriverWait(browser, 10)
File "C:\...\selenium\webdriver\support\wait.py", line 87, in until
raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message:
我试过单独处理这个异常,但没有用。所以我不明白我应该如何处理它,因为代码应该忽略超时,因为它只是意味着没有找到元素(大约有 10% 的时间会出现这种情况)。
except
根据关键字后面的表达式except
计算结果,捕获单个异常或多个异常的子句。
如果它评估为单个异常类,它将捕获该类型的异常。
如果它计算为一个元组,它将捕获元组中包含的任何类型的异常。
表达式ElementNotInteractableException or NoSuchElementException or TimeoutException
计算为单一类型ElementNotInteractableException
,而不是包含三个异常类的元组。
你想要一个明确的元组:
except (ElementNotInteractableException, NoSuchElementException, TimeoutException):
...
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句