Selenium webdriver python中新的ExpectedCondition类的语法

use*_*545 3 python selenium selenium-webdriver

我正在使用pylen的selenium webdriver.我想创建一个显式等待弹出窗口出现.遗憾的是,EC模块的常用方法不包括针对此问题的现成解决方案.在搜索许多其他帖子时,我认为我必须编写自己的EC条件 .until(new ExpectedCondition() { * the condition and its return arguments *}.

我无法找到有关用于正确编写此文件的确切语法的文档.这里有一个java示例:https://groups.google.com/forum/# ! msg/selenium-users/iP174o0ddw4/ l83n5C5rcPoJ.有人可以指向相关的文档(不是一般等待,而是创建新的EC),或者只是帮助我编写python版本,如果我刚刚链接到的java代码.非常感谢

Lou*_*uis 5

如果您想等待任意条件,则根本不必使用ExpectedCondition.您只需将函数传递给until方法:

from selenium.webdriver.support.ui import WebDriverWait

def condition(driver):
    ret = False
    # ...
    # Actual code to check condition goes here and should
    # set `ret` to a truthy value if the condition is true
    # ...
    return ret

WebDriverWait(driver, 10).until(condition)
Run Code Online (Sandbox Code Playgroud)

上面的代码将condition重复调用,直到满足以下任一条件:

  • condition 返回一个计算为true的值,

  • 已经过了10秒(在这种情况下会引发异常).