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

IE selenium driver with Spock and Jenkins not working

我正在使用 Jenkins、Spock、IE 和 Firefox selenium 驱动程序和 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 进行 运行ning 测试时,我在跟踪中看到用户名和密码保持为空,但是当从 Jenkins 对 Firefox 进行 运行ning 测试时,运行从 gradle 命令行对 IE 进行 ning 测试,用户和密码设置正确。

提前致谢。

看来问题出在 运行将 Jenkins 作为 windows 服务。在Selenium InternetExplorerDriver

中可以看到

Running IEDriverServer.exe Under a Windows Service

Attempting to use IEDriverServer.exe as part of a Windows Service application is expressly unsupported. Service processes, and processes spawned by them, have much different requirements than those executing in a regular user context. IEDriverServer.exe is explicitly untested in that environment, and includes Windows API calls that are documented to be prohibited to be used in service processes. While it may be possible to get the IE driver to work while running under a service process, users encountering problems in that environment will need to seek out their own solutions.

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

所以解决方案不是 运行将 Jenkins 作为 windows 服务。