Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby Selenium Webdriver Chromedriver在无头模式下启动时超时_Ruby_Google Chrome_Selenium_Jenkins_Selenium Chromedriver - Fatal编程技术网

Ruby Selenium Webdriver Chromedriver在无头模式下启动时超时

Ruby Selenium Webdriver Chromedriver在无头模式下启动时超时,ruby,google-chrome,selenium,jenkins,selenium-chromedriver,Ruby,Google Chrome,Selenium,Jenkins,Selenium Chromedriver,我使用的是SeleniumWebDriver,带有Ruby 32位1.9.3、Chromedriver v2.9.248315、Chrome38.0.2125.111M和Jenkins 1.588的本地实例 Gems:cucumber(1.3.17)、selenium webdriver(2.43.0)、watir webdriver(0.6.11)(如果您认为有必要,可以提供所有其他webdriver的列表) Windows7专业版64位版本 当运行一个Jenkins作业,使用chromedr

我使用的是SeleniumWebDriver,带有Ruby 32位1.9.3、Chromedriver v2.9.248315、Chrome38.0.2125.111M和Jenkins 1.588的本地实例

Gems:cucumber(1.3.17)、selenium webdriver(2.43.0)、watir webdriver(0.6.11)(如果您认为有必要,可以提供所有其他webdriver的列表)

Windows7专业版64位版本

当运行一个Jenkins作业,使用chromedriver启动Chrome,然后尝试与之交互时,我得到一个超时错误。当在我的桌面上通过命令提示符窗口执行同样的操作时,它可以完美地工作。运行相同的Jenkins任务,启动Firefox而不是Chrome,它工作得非常好

简单示例(C:\test.rb):

Jenkins作业配置为运行Windows批处理命令:

cd \
ruby test.rb
运行作业时的输出:

Started by user anonymous
Building in workspace C:\Program Files (x86)\Jenkins\jobs\test chromedriver\workspace
[workspace] $ cmd /c call C:\Windows\TEMP\hudson3963234995624341455.bat

C:\Program Files (x86)\Jenkins\jobs\test chromedriver\workspace>cd \ 

C:\>ruby test.rb 
C:/Ruby193/lib/ruby/1.9.1/net/protocol.rb:146:in `rescue in rbuf_fill': Timeout::Error (Timeout::Error)
    from C:/Ruby193/lib/ruby/1.9.1/net/protocol.rb:140:in `rbuf_fill'
    from C:/Ruby193/lib/ruby/1.9.1/net/protocol.rb:122:in `readuntil'
    from C:/Ruby193/lib/ruby/1.9.1/net/protocol.rb:132:in `readline'
    from C:/Ruby193/lib/ruby/1.9.1/net/http.rb:2563:in `read_status_line'
    from C:/Ruby193/lib/ruby/1.9.1/net/http.rb:2552:in `read_new'
    from C:/Ruby193/lib/ruby/1.9.1/net/http.rb:1320:in `block in transport_request'
    from C:/Ruby193/lib/ruby/1.9.1/net/http.rb:1317:in `catch'
    from C:/Ruby193/lib/ruby/1.9.1/net/http.rb:1317:in `transport_request'
    from C:/Ruby193/lib/ruby/1.9.1/net/http.rb:1294:in `request'
    from C:/Ruby193/lib/ruby/1.9.1/net/http.rb:1287:in `block in request'
    from C:/Ruby193/lib/ruby/1.9.1/net/http.rb:746:in `start'
    from C:/Ruby193/lib/ruby/1.9.1/net/http.rb:1285:in `request'
    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.43.0/lib/selenium/webdriver/remote/http/default.rb:83:in `response_for'
    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.43.0/lib/selenium/webdriver/remote/http/default.rb:39:in `request'
    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.43.0/lib/selenium/webdriver/remote/http/common.rb:40:in `call'
    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.43.0/lib/selenium/webdriver/remote/bridge.rb:638:in `raw_execute'
    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.43.0/lib/selenium/webdriver/remote/bridge.rb:616:in `execute'
    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.43.0/lib/selenium/webdriver/remote/bridge.rb:236:in `maximizeWindow'
    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.43.0/lib/selenium/webdriver/common/window.rb:98:in `maximize'
    from test.rb:5:in `<main>'

C:\>exit 1 
Build step 'Execute Windows batch command' marked build as failure
Finished: FAILURE
由匿名用户启动
在工作区C:\Program Files(x86)\Jenkins\jobs\test chromedriver\workspace中生成
[workspace]$cmd/c调用c:\Windows\TEMP\hudson39632349956524341455.bat
C:\ProgramFiles(x86)\Jenkins\jobs\test chromedriver\workspace>cd\
C:\>ruby test.rb
C:/Ruby193/lib/ruby/1.9.1/net/protocol.rb:146:in`rescue in rbuf_fill':Timeout::Error(Timeout::Error)
from C:/Ruby193/lib/ruby/1.9.1/net/protocol.rb:140:in'rbuf_-fill'
from C:/Ruby193/lib/ruby/1.9.1/net/protocol.rb:122:in'readuntil'
from C:/Ruby193/lib/ruby/1.9.1/net/protocol.rb:132:in'readline'
来自C:/Ruby193/lib/ruby/1.9.1/net/http.rb:2563:in'read\u status\u line'
来自C:/Ruby193/lib/ruby/1.9.1/net/http.rb:2552:in'read\u new'
from C:/Ruby193/lib/ruby/1.9.1/net/http.rb:1320:in'block in transport_request'
来自C:/Ruby193/lib/ruby/1.9.1/net/http.rb:1317:in'catch'
来自C:/Ruby193/lib/ruby/1.9.1/net/http.rb:1317:“传输请求”中的
来自C:/Ruby193/lib/ruby/1.9.1/net/http.rb:1294:in'request'
来自C:/Ruby193/lib/ruby/1.9.1/net/http.rb:1287:in'block in request'
来自C:/Ruby193/lib/ruby/1.9.1/net/http.rb:746:in'start'
来自C:/Ruby193/lib/ruby/1.9.1/net/http.rb:1285:in'request'
来自C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.43.0/lib/selenium/webdriver/remote/http/default.rb:83:“response_for”
来自C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.43.0/lib/selenium/webdriver/remote/http/default.rb:39:“请求”中
来自C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.43.0/lib/selenium/webdriver/remote/http/common.rb:40:in'call'
来自C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.43.0/lib/selenium/webdriver/remote/bridge.rb:638:in'raw_execute'
来自C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.43.0/lib/selenium/webdriver/remote/bridge.rb:616:in'execute'
来自C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.43.0/lib/selenium/webdriver/remote/bridge.rb:236:in'maximizeWindow'
来自C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.43.0/lib/selenium/webdriver/common/window.rb:98:in“最大化”
来自test.rb:5:in`'
C:\>出口1
生成步骤“执行Windows批处理命令”将生成标记为失败
完成:失败
我曾尝试在Jenkins服务中启用“允许服务与桌面交互”,然后观察窗口(在更复杂的场景中),Chrome窗口打开,但什么也没做。我最初对“$browser.cookies.clear”有问题,在注释掉这一行之后,我现在对$browser.driver.manage.window.maximize行也有同样的问题

我正在运行复杂的黄瓜场景,使用Chromedriver没有任何问题。然后我重建了我的电脑,在安装了Jenkins、Ruby和Chromedriver(将两者都添加到PATH中)并将旧作业复制到我的新Jenkins安装后,我遇到了上述问题。然后我创建了上面的简单示例,对其进行了测试,并创建了这篇文章


如果有人对如何让Chromedriver重新工作有任何想法,那就太好了。

Chrome无法在windows中以无头模式运行。 您需要使用HTMLdriver来完成此操作

如果您非常需要它,您需要尝试设置一个vnc服务器并在其中运行。

在会话0中以系统用户身份运行时,Chrome 38不工作。通常情况下,这是因为Chrome是由Windows服务启动的——在您的例子中,Jenkins是作为服务运行的。这是一个众所周知的问题。请参阅硒问题和

两种解决方案:

  • 将Chrome降级到低于38的版本
  • 下载并安装

  • AlwaysUp解决方案确实有效,但许可成本很低,或者如果你不担心Chrome版本,你可以将其降级。

    SDET的回答帮助了我(投票结果为上),会话0是我的问题,但你不需要AlwaysUp,您可以通过:
    javaws从一些启动脚本启动jenkins slavehttp:///computer//slave-agent.jnlp

    我不知道“headless mode”(无头模式)是否是我要做的事情的正确词汇,但它确实有效,它在重建之前在我的机器上有效,在另一台服务器和另一个人的机器上有效。Jenkins在“虚拟桌面”上启动了一个Chrome实例,然后应该运行测试,但它不在我的机器上。我刚刚尝试了3个。更改了Jenkins的服务条目中的用户,我在脚本中添加了一个whoami,以确认它现在使用的是不同的用户(它是)。我仍然得到完全相同的错误。我有Chrome 38,所以我会尝试降级Chrome版本更新的答案,以删除不起作用的选项。我似乎找不到降级Chrome的方法,我能找到的所有合法下载都将我重定向到Google Chrome下载页面,这迫使我下载最新版本的Chrome。不过,看起来他们会在Chrome39中修复它
    Started by user anonymous
    Building in workspace C:\Program Files (x86)\Jenkins\jobs\test chromedriver\workspace
    [workspace] $ cmd /c call C:\Windows\TEMP\hudson3963234995624341455.bat
    
    C:\Program Files (x86)\Jenkins\jobs\test chromedriver\workspace>cd \ 
    
    C:\>ruby test.rb 
    C:/Ruby193/lib/ruby/1.9.1/net/protocol.rb:146:in `rescue in rbuf_fill': Timeout::Error (Timeout::Error)
        from C:/Ruby193/lib/ruby/1.9.1/net/protocol.rb:140:in `rbuf_fill'
        from C:/Ruby193/lib/ruby/1.9.1/net/protocol.rb:122:in `readuntil'
        from C:/Ruby193/lib/ruby/1.9.1/net/protocol.rb:132:in `readline'
        from C:/Ruby193/lib/ruby/1.9.1/net/http.rb:2563:in `read_status_line'
        from C:/Ruby193/lib/ruby/1.9.1/net/http.rb:2552:in `read_new'
        from C:/Ruby193/lib/ruby/1.9.1/net/http.rb:1320:in `block in transport_request'
        from C:/Ruby193/lib/ruby/1.9.1/net/http.rb:1317:in `catch'
        from C:/Ruby193/lib/ruby/1.9.1/net/http.rb:1317:in `transport_request'
        from C:/Ruby193/lib/ruby/1.9.1/net/http.rb:1294:in `request'
        from C:/Ruby193/lib/ruby/1.9.1/net/http.rb:1287:in `block in request'
        from C:/Ruby193/lib/ruby/1.9.1/net/http.rb:746:in `start'
        from C:/Ruby193/lib/ruby/1.9.1/net/http.rb:1285:in `request'
        from C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.43.0/lib/selenium/webdriver/remote/http/default.rb:83:in `response_for'
        from C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.43.0/lib/selenium/webdriver/remote/http/default.rb:39:in `request'
        from C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.43.0/lib/selenium/webdriver/remote/http/common.rb:40:in `call'
        from C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.43.0/lib/selenium/webdriver/remote/bridge.rb:638:in `raw_execute'
        from C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.43.0/lib/selenium/webdriver/remote/bridge.rb:616:in `execute'
        from C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.43.0/lib/selenium/webdriver/remote/bridge.rb:236:in `maximizeWindow'
        from C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.43.0/lib/selenium/webdriver/common/window.rb:98:in `maximize'
        from test.rb:5:in `<main>'
    
    C:\>exit 1 
    Build step 'Execute Windows batch command' marked build as failure
    Finished: FAILURE