参考这个问题https://sqa.stackexchange.com/questions/3481/quicker-way-to-assert-that-an-element-does-not-exist我正在尝试写一个element_is_not_present
辅助函数:
def element_is_not_present(selector):
self.d.implicitly_wait(0)
number_present = len(self.d.find_elements_by_css_selector(selector))
self.d.implicitly_wait(10)
return number_present == 0
find_elements_by_css_selector
将在返回之前等待隐式等待超时,因此我在调用之前和之后添加了mutators以加速方法。问题在于恢复隐式等待apparently there is no getter for the implicit wait value,因此我必须对恢复值进行硬编码,从而在使用不同的基值时导致问题。
问题是,我怎样才能加速我的方法,同时否定这个问题?如果做不到这一点,也许有另一种方法来编写辅助方法或处理显式等待?
我目前的解决方案是使用我自己的隐式等待默认值全局,但这远非理想。
答案 0 :(得分:0)
更长的答案:这正是人们(包括我在内)建议您不要使用隐式等待的问题之一。使用隐式等待无法在没有等待超时的情况下测试元素是否不存在。避免这种情况的唯一方法是在缺勤测试期间禁用隐式等待。或使用显式等待。
这里的答案更长:When to use explicit wait vs implicit wait in Selenium Webdriver?
也很有趣:How to test for absence of an element without waiting for a 30 second timeout