我使用硒webdriver的,用Ruby 32位1.9.3,Chromedriver v2.9.248315,鉻38.0.2125.111 m和詹金斯1.588在無頭模式開始硒的webdriver Chromedriver超時
寶石的本地實例:黃瓜(1.3.17),selenium-webdriver(2.43.0),watir-webdriver(0.6.11)(可以提供所有其他列表,如果您認爲有必要)
Windows 7 Professional 64位版本。
當運行一個使用chromedriver啓動Chrome的Jenkins作業,然後試圖與它交互時,我得到一個超時錯誤。當通過命令提示符窗口在桌面上執行相同操作時,它可以很好地工作。運行相同的Jenkins工作,啓動Firefox而不是Chrome,它可以完美運行。
簡單的例子(C:\ test.rb):
require 'watir-webdriver'
require 'selenium-webdriver'
client = Selenium::WebDriver::Remote::Http::Default.new
$browser = Watir::Browser.new :chrome, :http_client => client
$browser.driver.manage.window.maximize
$browser.close
詹金斯作業配置爲運行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
我已經嘗試在Jenkins服務中啓用「允許服務與桌面交互」,然後觀看窗口(在更多c複雜情況),Chrome窗口打開,但什麼都不做。我原來的問題與「$ browser.cookies.clear」,並在註釋掉該行後,我現在有同樣的問題,行$ browser.driver.manage.window.maximize
我正在運行復雜的黃瓜場景使用Chromedriver沒有麻煩。然後我重新安裝了我的電腦,在安裝Jenkins,Ruby,Chromedriver(添加到PATH)並將舊作業複製到我的新Jenkins安裝後,我遇到了上述問題。然後我創建了上面的簡單示例,測試它並創建了這篇文章。
如果任何人有任何關於如何讓Chromedriver再次工作的想法,這將是偉大的。
我剛剛嘗試了3.在Jenkins的服務條目中更改了用戶,我在腳本中添加了whoami以確認它現在使用不同的用戶(它是)。我仍然得到完全相同的錯誤。我有Chrome 38,所以我會嘗試降級Chrome版本 – Steve 2014-11-11 11:33:21
更新的答案,以刪除不起作用的選項 – SDET 2014-11-13 04:42:17
我似乎無法找到降級Chrome的方式,我可以找到重定向的所有合法外觀下載我到Google Chrome下載頁面,這迫使我下載最新版本的Chrome。不過,它看起來像是要在Chrome 39中修復它https://code.google.com/p/chromium/issues/detail?id=422218 – Steve 2014-11-17 08:50:51