python - Selenium webdriver python 中新 ExpectedCondition 类的语法

标签 python selenium selenium-webdriver

我正在使用带有 python 的 selenium webdriver。 我想创建一个显式等待弹出窗口出现的过程。不幸的是,EC 模块的常用方法不包含针对此问题的现成解决方案。搜索许多其他帖子,我发现我必须编写自己的 EC 条件, .until(new ExpectedCondition() { * 条件及其返回参数 *}

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

最佳答案

如果您想等待任意条件,则根本不必使用 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)

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

  • condition 返回一个评估为 true 的值,

  • 10 秒过去了(在这种情况下引发异常)。

关于python - Selenium webdriver python 中新 ExpectedCondition 类的语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21581724/

相关文章:

python - 当作为 www-data 运行时,为什么 input.send_keys() 在我的 Selenium WebDriver Python 脚本中不起作用?

java - Selenide:如何从 ElementsCollection 中获取所有 Activity 元素?

java - 构造“try/catch”不会捕获异常“NoSuchElementException”

python - 将 txt 文件转换为 xls 文件

python - 为什么这不能用作数组成员资格测试?

python - 如何在两个numpy数组上找到满足不同条件的行数

python - Pandas:使用 group by,将多个列值组合为 groupby 中的一个不同组

python - 按顺序在python脚本中运行函数

selenium - "The app must be signed with a development identity"是什么意思?

Phpunit - Selenium2 - 等待页面完全加载