我使用Python/Selenium提交表单,然后让web驱动程序使用预期的条件使用类id等待下一页加载。
我的问题是有两个页面可以显示,但它们不共享原始页面中没有的唯一元素(我可以找到)。一个页面的唯一类是mobile_txt_holder,另一个可能的页面的类id是notfoundcopy。我想等待mobile_txt_holdernotfoundcopy出现。
是否可以将两个预期条件合并为一个等待?
基本的想法,我正在寻找,但显然不会工作:

    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>

最佳答案

除了2expected_conditionsor子句,我们可以很容易地构造一个CSS来满足我们的需求,下面的CSS将在mobile_txt_holder类或notfoundcopy类中查找EC:

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

您可以在selenium two xpath tests in one中找到详细的讨论

10-08 03:09