Selenium IE驱动程序在使用SpecRun运行时不会单击,但在使用SpecFlow运行时可以运行

时间:2014-12-12 20:42:32

标签: internet-explorer selenium specflow specrun

背景 我们有一个使用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 运行时,本地计算机上的相同功能文件为FAIL。问题是EnableNativeEvents = false似乎被忽略,点击不起作用。我也在CI服务器上进行了测试,功能文件也在那里失败了。

点击搜索按钮的功能文件步骤适用于SpecFlow Feature file step to click search button works in SpecFlow

点击搜索按钮的相同步骤在SpecRun中不工作(注意:搜索按钮具有焦点) Same step to click search button NOT WORKING in SpecRun

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

提前感谢您的时间。

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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

capability.setCapability(InternetExplorerDriver.REQUIRE_WINDOW_FOCUS,true);

这违反了自动化标准,但是当它得到关注时IE非常有效。