【问题标题】:Selenium alternative for waitForPageToLoad when dealing with AJAX-type operation处理 AJAX 类型的操作时 waitForPageToLoad 的 Selenium 替代方案
【发布时间】:2011-10-27 22:07:26
【问题描述】:

我正在对我的代码运行一些单元测试,为此我必须下载 selenium 服务器。现在,selenium 包含的示例之一称为 GoogleTest。我将它复制到我的 C:\ 文件夹中,并尝试运行它。

起初,我在尝试打开 Firefox 时出错。似乎 selenium 已经有一段时间没有更新了,因为它支持到 Firefox 3.5 版。找到了对我有帮助的 this 有用的博客(将 3.5.* 更改为 7.0.*)。

现在,我有一个新问题。似乎 selenium 也没有更新其文档,并且 GoogleTest 在执行时挂起(this 帖子解释了原因)。使用 AJAX 类型操作时,操作 waitForPageToLoad 挂起。

现在,我需要与此操作等效的操作,但是在处理 AJAX 操作时.. 有人知道替代方法吗?谢谢

【问题讨论】:

  • 您使用的是哪个版本的硒?当然,2.0 没有这个问题。如果您正在寻找替代品,您是否查看过 Sahi?
  • 在此之后我决定检查我的 Selenium 版本。我确信我拥有最新版本,但我的 version.txt 文档另有说明(selenium.rc.version=1.0.1)。我会尝试下载最新的,看看它是否有效。谢谢!
  • 我在尝试使用 selenium 2.0 版本时遇到了一些问题,我在这里发布了另一个问题 (stackoverflow.com/questions/7947773/…)。如果你能帮我解决这个问题,太好了!

标签: ajax selenium command


【解决方案1】:

你试过QAF formerly ISFW吗?它在内部等待元素,并为 ajax 提供等待功能以完成可能的 js 工具包,如 dojo、extjs、原型等

例如,如果 AUT 使用 extjs,那么您可以使用 like

waitService.waitForAjaxToComplete(JsToolkit.EXTJS);

【讨论】:

    【解决方案2】:

    Selenium 中没有 waitforajaxtoreturn 函数。处理 AJAX 更改的方式是使用 WebDriverWait 类在 AJAX 调用返回时等待特定条件变为真。

    例如,对于 Google 测试,WebDriverWait 可以等待搜索容器出现。

    本质上,您必须知道自己在等待什么才能继续测试。

    【讨论】:

      【解决方案3】:

      我正在测试一些 ajax 和 JS 重页,我也遇到了完全相同的问题。我使用了隐式等待来暂停 ajax 代码以执行并将新内容加载到 DOM 。这是我的代码中的一个 python 示例:

      from selenium import webdriver
      browserHandle = webdriver.Firefox()
      browserHandle.implicitly_wait(10)
      ## assuming dom object loads in 10 seconds
      ## clear implicit wait
      browserHandle.implicitly_wait(0)
      

      【讨论】:

        猜你喜欢
        • 2010-11-15
        • 1970-01-01
        • 1970-01-01
        • 2023-01-19
        • 2011-11-28
        • 1970-01-01
        • 1970-01-01
        • 2018-06-18
        • 1970-01-01
        相关资源
        最近更新 更多