一尘不染

WebDriverWait中的逻辑运算符预期条件

selenium

我正在使用Python / Selenium提交表单,然后让Web驱动程序通过使用类ID的预期条件来等待下一页的加载。

我的问题是可以显示两个页面,但是它们没有共享原始页面中没有的唯一元素(我可以找到)。一页的唯一类为,mobile_txt_holder而另一页可能的类ID为notfoundcopy
我想使用一个等待,寻找mobile_txt_holderOR notfoundcopy出现。

是否可以将两个预期条件合并为一个等待?

我正在寻找的基本想法,但显然行不通:

WebDriverWait(driver, 30).until(EC.presence_of_element_located(
    (By.CLASS_NAME, "mobile_txt_holder")))
    or .until(EC.presence_of_element_located((By.CLASS_NAME, "notfoundcopy")))

我真的只需要编程以等待下一页加载,以便我可以解析源代码。

HTML示例:

<p class="notfoundcopy">Unfortunately, the number you entered is not in our tracking system.</p>


阅读 380

收藏
2020-06-26

共1个答案

一尘不染

除了将2 expected_conditions贯穿or条款合并在一起,我们还可以轻松构造一个a
CSS来满足我们的要求。以下内容CSS将在mobile_txt_holder课堂上或notfoundcopy课堂上寻找EC :

element = WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.CSS_SELECTOR, ".mobile_txt_holder, .notfoundcopy"))

您可以在硒中找到详细的讨论,两个xpath测试合而为一

2020-06-26