0

以下代码不起作用。selenium web 驱动程序无需等待即可继续执行,即使页面上的任何元素都不可见。因此断言失败。

element = WebDriverWait(self.driver, 30).until(
            lambda x: (EC.visibility_of_element_located((By.ID, "export_errors_button"))) or
                      (EC.visibility_of_element_located((By.ID, "finish_button")))
        )
assert "finish_button" in element.get_attribute('id').split()
4

1 回答 1

0

我最终编写了一个自定义等待条件。

def one_of_these_elements_is_visible(element1, element2):
    def wait_for_condition(driver):
        attribute = driver.find_element(By.ID, element1).is_displayed()
        if attribute:
            return True
        else:
            return driver.find_element(By.ID, element2).is_displayed()
    return wait_for_condition


element = WebDriverWait(self.driver, 20).until(one_of_these_elements_is_visible("finish_button",
                                                                              "export_errors_button"))
于 2021-10-25T15:43:27.117 回答