【问题标题】:Selenium IE driver not clicking when running with SpecRun but works when run with SpecFlowSelenium IE 驱动程序在使用 SpecRun 运行时不单击,但在使用 SpecFlow 运行时工作
【发布时间】:2015-03-23 07:31:42
【问题描述】:

背景: 我们有一个使用 Selenium 和 Firefox Web 驱动程序运行功能文件的测试框架。 在 Firefox 下运行时,所有功能文件都通过测试。 对于测试运行者,我们在开发人员/QA 本地机器上使用 SpecFlow,在 CI 服务器上使用 SpecRun。 正在测试的网站是用经典的 ASP.NET 编写的。

要求: 我们希望在 Internet Explorer 11 下测试通过功能文件。

方法: 使用 SpecFlow 和 SpecRun 获取功能文件测试以在本地机器上通过

机器准备:

  • 将 Internet Explorer 11 的缩放级别设置为 100%
  • 为 Internet Explorer 11 中的所有区域启用保护模式
  • 为 Internet Explorer Web 驱动程序设置 EnableNativeEvents = false (2.44.0)

所有功能文件都在运行 SpecFlow

的本地机器上传递

问题: 使用 SpecRun 运行时,相同的功能文件在本地计算机上失败。问题是 EnableNativeEvents = false 似乎被忽略并且点击不起作用。我还在 CI 服务器上进行了测试,功能文件也在那里失败了。

点击搜索按钮的特征文件步骤在 SpecFlow 中有效

在 SpecRun 中单击搜索按钮不起作用的相同步骤(注意:搜索按钮具有焦点)

Selenium 是与网站交互的组件。 SpecFlow 和 SpecRun 只是测试运行器。 这里可能是什么问题?

提前感谢您的宝贵时间。

【问题讨论】:

  • 异常到底是什么样子的?
  • 此时没有抛出异常(点击搜索按钮)。点击就消失在深渊中。只有在 Selenium 尝试与结果网格交互时,才会在下一步中引发 ArgumentNullException。

标签: internet-explorer selenium specflow specrun


【解决方案1】:

您已经提到,Dev/QA 本地机器运行 Specflow,CI 机器运行 SpecRun。 Dev/QA 本地机器是否也使用 SpecRun 作为单元测试运行器?

如果没有,请尝试在 CI 机器上使用相同的测试运行程序,看看是否能解决问题。值得一试。

【讨论】:

  • 我尝试在本地机器上同时运行 SpecFlow 和 SpecRun。由于单击不起作用,测试通过 SpecFlow 但不通过 SpecRun。我还没有在 CI 机器上尝试过 SpecFlow。认为我需要让它与两者一起工作以消除任何可能的机器特定问题。
【解决方案2】:

我假设您希望在通过 CI 启动测试时以无人值守模式运行所有测试。为了让 IE 在这种情况下更好地工作,您可以添加另一个功能。

capability.setCapability(InternetExplorerDriver.REQUIRE_WINDOW_FOCUS,true);

这违反了自动化标准,但 IE 在获得焦点时运行良好。

【讨论】:

    猜你喜欢
    • 2019-07-23
    • 2016-01-09
    • 2020-03-22
    • 2020-10-10
    • 2015-09-23
    • 1970-01-01
    • 1970-01-01
    • 2015-11-01
    • 1970-01-01
    相关资源
    最近更新 更多