我正在使用带有 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/