有没有一种方法可以让我等待两个元素之一加载到 selenium 中。我正在使用显式等待,到目前为止,还没有找到解决方案。
简单的做
WebDriverWait(driver,5).until(lambda driver : driver.find_element(By.ID,"a") or driver.find_element(By.ID,"b"))
好像不行。它只是寻找 id 为 ="a"的元素。
谢谢!
最佳答案
如果没有找到元素,
find_element
引发 NoSuchElementException
异常。
如果 id 为 a
的元素不存在,driver.find_element(By.ID,"a")
将引发异常并且 驱动程序。 find_element(By.ID,"b")
不会被执行。
解决该问题的一个简单方法是使用 find_elements
,它返回空列表而不是引发异常:
WebDriverWait(driver,5).until(
lambda driver: driver.find_elements(By.ID,"a") or driver.find_elements(By.ID,"b"))
关于 python Selenium : Explicitly wait for one of two elements to be loaded,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27606026/