是否可以全局覆盖 WebDriverWait 的 IGNORED_EXCEPTIONS?
而不是拥有
return WebDriverWait(self.browser, 10, ignored_exceptions(StaleElementReferenceException, NoSuchFrameException),
poll_frequency=1).until(EC.visibility_of_element_located((By.ID, 'ID')))
我不想在每个元素中显式地放置这些异常,如果可能的话,我宁愿只全局覆盖默认值
所以应该这样读
return WebDriverWait(self.browser, 10).until(EC.visibility_of_element_located((By.ID, 'ID')))
https://github.com/SeleniumHQ/selenium/blob/trunk/py/selenium/webdriver/support/wait.py#L26C60-L26C85 您可以在第 26 行看到默认情况下它有 NoSuchElementException,我们可以如何更改此默认值吗?
我尝试使用 在 init
.py 中设置它import selenium
from selenium.common.exceptions import NoSuchElementException, StaleElementReferenceException
selenium.webdriver.support.wait.IGNORED_EXCEPTIONS = (NoSuchElementException, StaleElementReferenceException)
但这似乎没有效果
任何帮助总是高度赞赏
我找到了我想要实现的目标的答案
from selenium.common.exceptions import NoSuchFrameException, StaleElementReferenceException, NoSuchElementException
from selenium.webdriver.support import wait
@pytest.fixture(autouse=True)
def set_expected_conditions():
wait.IGNORED_EXCEPTIONS = (NoSuchElementException, NoSuchFrameException, StaleElementReferenceException)
如果您创建自动使用装置,这将为每个测试设置ignore_exceptions
这适用于我的框架
我在我的webdriver.py
中设置了这个