1

背景: 我们有一个使用 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 驱动程序 (2.44.0) 设置 EnableNativeEvents = false

所有功能文件都在运行SpecFlow的本地机器上传递

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

单击搜索按钮的功能文件步骤在 SpecFlow 中有效 单击搜索按钮的功能文件步骤在 SpecFlow 中有效

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

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

在此先感谢您的时间。

4

2 回答 2

0

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

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

于 2014-12-18T16:07:31.420 回答
0

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

capability.setCapability(InternetExplorerDriver.REQUIRE_WINDOW_FOCUS,true);

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

于 2015-01-05T06:45:06.023 回答