当前位置: 首页 > 面试题库 >

WebDriver的Python绑定中的selenium.wait_for_condition等效

傅元章
2023-03-14
问题内容

我正在将一些测试从Selenium移到WebDriver。我的问题是我找不到selenium.wait_for_condition的等效项。Python绑定现在有此功能还是仍在计划中?


问题答案:

当前,无法在WebDriver中使用wait_for_condition。python
selenium代码确实提供了DrivenSelenium类来访问旧的selenium方法,但是它不能执行wait_for_condition。
硒Wiki上有一些信息。

最好的选择是使用WebDriverWait类。这是一个帮助程序类,该类定期执行一个函数,等待其返回True。我的一般用法是

driver = webdriver.Firefox()
driver.get('http://example.com')
add = driver.find_element_by_id("ajax_button")
add.click()
source = driver.page_source

def compare_source(driver):
    try:
        return source != driver.page_source
    except WebDriverException:
        pass

WebDriverWait(driver, 5).until(compare_source)
# and now do some assertions

此解决方案绝不是理想的选择。对于页面请求/响应周期被延迟以等待某些ajax活动完成的情况,try /
except是必需的。如果在请求/响应周期中调用compare_source get,则会抛出WebDriverException。

WebDriverWait的测试范围也很有帮助。



 类似资料:
  • 问题内容: 目前,我正在编写使用ajax进行搜索的webdriver测试。如果在键入搜索内容之后并按Enter键之前添加显式等待,则测试效果很好。 但 失败。我正在使用1个虚拟CPU在ec2上运行测试。我怀疑,即使在发送与搜索相关的GET请求之前,我也按回车键;如果在建议之前按回车键,它将失败。 有没有更好的方法来添加显式等待? 问题答案: 您确实可以添加一个明确的等待,以等待诸如 请参阅:htt

  • 相信 Python 程序员多多少少都和我一样遇到过 Method Unbound Error,直译过来就是 “方法未绑定错误”,虽然搜索之后知道了使用 @classmethod 这样的装饰起后就可以解决问题, 但是一直没有得到完全解惑。 我们知道,Python 是一个动态语言,在类的创建过程中甚至实例化以后都能动态地修改其方法、 属性,这种做法通常被称为“Monkey Patching”,虽然我们

  • 我正在寻找selenium webdriver PHP绑定。在他们的文档中,他们说PHP绑定是由第三方提供的。在他们的文档页面上,他们招募以下第三方绑定: null 我该选哪一个?

  • 我有一个页面,它用ajax加载动态内容,然后在一定时间后重定向(不固定)。我如何强制Selenium Webdriver等待页面重定向,然后立即转到另一个链接?

  • 问题内容: 在哪里可以找到Windows的预编译Python SWIG SVN绑定? 问题答案: tigris.org上的(旧)Windows二进制文件页面包含 SVN的python绑定 的安装程序。在/ trunk / subversion / bindings / swig / python上 查看SWIG绑定的源代码。 (2010年5月 -Subversion项目 正在转变为Apache S

  • 问题内容: 我有一个单击按钮并重定向到用户仪表板的测试。发生这种情况时,Webdriver返回: 为了解决这个问题,我将插入到发生重定向的位置,并假设我的CPU使用率很低,这可以解决此问题。但是,2000 ms是任意的并且很慢。是否有类似的东西会等到Angular在重定向页面上加载之前? 问题答案: 您认为这样的事情对您有用吗?最多需要等待10秒,URL才能包含文本“ pageTwo”或您输入的任