与Spock和Jenkins的IE selenium驱动程序无法正常工作

时间:2015-07-24 11:40:17

标签: internet-explorer selenium jenkins spock

我正在使用Jenkins,Spock,IE和Firefox selenium Drivers and Gradle构建一些测试用例。

测试打开登录页面,设置用户和密码并登录到应用程序。

当我从gradle命令提示符运行时,测试对IE和Firefox都有效,但是当我在Jenkins中执行测试时,它只适用于Firefox而不适用于IE。

似乎设置用户和密码仅适用于Firefox,在IE上它们未设置,它们保持为空。

测试类似于:

def "login"() {
    when:
    to LoginPage

    and:
    $("#login input[name=user]").value("username")
    LOGGER.info "user is " + $("#login input[name=user]").value()
    $("#login input[name=pass]").value("password")
    LOGGER.info "pass is " + $("#login input[name=pass]").value()
    LOGGER.info "Set user and password"
    $("#login input[type=button]").click()


    then:
    at MainPage
}

当从Jenkins运行IE测试时,我在跟踪上看到用户和密码保持为空,但是当从Jenkins运行Firefox测试,并从gradle命令行运行IE测试时,用户和密码都设置为属性。 / p>

提前致谢。

1 个答案:

答案 0 :(得分:1)

似乎问题是将Jenkins作为Windows服务运行。可以在Selenium InternetExplorerDriver中看到

  

在Windows服务下运行IEDriverServer.exe

     

明确不支持尝试将IEDriverServer.exe用作Windows服务应用程序的一部分。服务流程和由它们产生的流程与在常规用户上下文中执行的流程和流程有很多不同的要求。 IEDriverServer.exe在该环境中显式未经测试,并包含记录为禁止在服务进程中使用的Windows API调用。虽然可以在服务过程中运行时让IE驱动程序工作,但是在该环境中遇到问题的用户需要找到他们自己的解决方案。

Windows服务不支持ieDriver。我执行Jenkins作为Windows服务,所以测试下降。然后我下载了Jenkins war并将其放在Tomcat服务器上,并从命令提示符运行它,然后进行所有测试,包括测试工作。

因此解决方案不是将Jenkins作为Windows服务运行。