【问题标题】:Selenium RC and Internet ExplorerSelenium RC 和 Internet Explorer
【发布时间】:2011-04-28 23:06:53
【问题描述】:

我正在尝试使用 Selenium RC 和用 Java 编写的测试用例为 Web 应用程序创建一个全自动测试套件。但是,我遇到了一些我无法解决的问题。如果您对这些问题有任何建议,请告诉我。

  1. 单窗口模式。我想运行单窗口模式,因为我认为它会显着提高性能,并可能解决问题 2。我能够使用 Firefox 在单窗口模式下运行我的测试用例,并且一切都按预期运行,执行速度更快。但是,在 Internet Explorer 中使用单窗口模式时,我无法执行我的测试用例;按钮单击根本不起作用,因此由于浏览器永远不会进入下一个屏幕,因此测试失败。完全相同的测试用例在多窗口 Internet Explorer 中执行得很好。我可以使用某种技巧来实现此目的吗?

  2. 在多窗口模式下运行时,如果测试出错,或者用户退出 Selenium GUI 窗口,浏览器永远不会关闭。我知道可以获取进程 ID 并将其终止,但这似乎相当危险,尤其是在用户运行多个浏览器实例的情况下。如果可能的话,这是我想使用单窗口模式的部分原因。有没有其他方法,可能通过处理 Selenium GUI 的窗口关闭事件来解决这个问题?

  3. 我无法在我的任何测试脚本中使用 waitForPageToLoad 命令,因为它永远不会识别页面已加载并恢复执行。我认为这是因为页面使用了 Javascript,但我不确定;我在网页开发方面没有太多经验。现在,我正在使用 wait 命令并指定等待的时间。但是,这是非常不可靠的,有时如果 Internet 连接很慢,我的测试会失败,因为等待时间不够长。其他时候,由于等待时间长,测试速度过慢。有关如何处理此问题的任何想法?

谢谢!感谢您提供的任何答案或建议。如果您想了解更多信息,请告诉我。

【问题讨论】:

    标签: java internet-explorer web-applications selenium selenium-rc


    【解决方案1】:
    1. 您尝试过 IE HTA 模式吗?当我曾经搞砸这些东西时,它是在 IE 上运行测试的唯一可靠方法。

    2. 不确定

    3. 您需要使用wait class。本质上,您执行一项操作,然后对尚不存在的元素进行轮询,但您知道何时可以安全地继续测试。因此,您只需等待所需的最短时间。

    【讨论】:

      【解决方案2】:

      对于多寡妇关闭问题,您需要处理异常。在 finally 块中调用 close 函数将解决窗口关闭问题。

      对于页面刷新,您需要手动检查并在正确的位置调用。通常单击链接会在显示下一个屏幕之前导致页面刷新。

      【讨论】:

      • +1 用于 close() 参考。我测试过的相当多的示例会在测试后使 Internet Explorer 保持打开状态。在我的单元测试中将其添加为最后一次调用有助于删除孤立的 IE 实例。
      猜你喜欢
      • 1970-01-01
      • 2023-03-19
      • 2010-12-03
      • 1970-01-01
      • 2016-06-13
      • 2018-08-16
      • 1970-01-01
      • 1970-01-01
      • 2014-05-20
      相关资源
      最近更新 更多