我正在使用 JBehave 和 Selenium 为基于浏览器的验收测试构建测试框架。使用https://github.com/jbehave/jbehave-tutorial/tree/master/etsy-selenium/java-spring上的示例代码开始我的项目,工作得很好,但现在遇到了问题。
我的测试用例在 Firefox 上运行良好,但在 IE8 上没有任何效果。简单的 find By 子句在 IE 上失败。
System info: os.name: 'Windows XP', os.arch: 'x86', os.version: '5.1', java.version: '1.7.0'
Driver info: driver.version: BaseFluentWebDriver
at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:125)
... 64 more
Caused by: org.openqa.selenium.NoSuchElementException: Unable to find element with id == search-box (WARNING: The server did not provide any stacktrace information)
在线搜索似乎我需要设置 INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS=true 并努力在 spring bean .xml 配置中设置它。
这就是我目前所拥有的,请提出更正建议或让我知道我是否完全错误地解决了这个问题。
<bean id="browserCapabilities" class="org.openqa.selenium.remote.DesiredCapabilities" >
<constructor-arg index="0" value="internet explorer"/>
<constructor-arg index="1" value="8"/>
<constructor-arg index="2" value="WINDOWS"/>
</bean>
<bean id="ieDriverCapabilitySetter" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
<property name="targetObject" ref="browserCapabilities" />
<property name="targetMethod" value="setCapability" />
<property name="arguments">
<list>
<value>org.openqa.selenium.ie.InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS</value>
<value>true</value>
</list>
</property>
</bean>
<bean id="driverProvider" class="org.jbehave.web.selenium.RemoteWebDriverProvider" >
<constructor-arg ref="browserCapabilities"/>
</bean>