覆盖 wedriverwait wait.py 中的 IGNORED_EXCEPTIONS

问题描述 投票:0回答:1

是否可以全局覆盖 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)

但这似乎没有效果

任何帮助总是高度赞赏

python selenium-webdriver webdriverwait
1个回答
0
投票

我找到了我想要实现的目标的答案

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

中设置了这个
© www.soinside.com 2019 - 2024. All rights reserved.