簡體   English   中英

無法在 Jenkins 中正確運行硒測試

[英]Unable to run selenium tests correctly in Jenkins

我創建了一些硒測試。 本地運行沒有問題。 我想配置一個 Jenkins 作業來運行測試。出現以下錯誤

Starting ChromeDriver 2.46.628388 (4a34a70827ac54148e092aafb70504c4ea7ae926) on port 6720
Only local connections are allowed.
Please protect ports used by ChromeDriver and related test frameworks to prevent access by malicious code.
[1564522396.317][SEVERE]: bind() failed: Cannot assign requested address (99)
PM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Detected dialect: OSS

所有的測試都無法定位到網頁元素。

docker鏡像中的chrome版本是73,我提供的chrome驅動是2.46(也試過73.0.3683.68)selenium-java 3.5.0

我嘗試了很多建議,比如 add chmod +x src/test/resources/localWebDriver/chromedriver

ChromeOptions chromeOptions = new ChromeOptions();
        chromeOptions.addArguments("--headless");
        chromeOptions.addArguments("--no-sandbox");
        chromeOptions.addArguments("--whitelisted-ips");
        chromeOptions.addArguments("--disable-extensions");

但是仍然無法正確運行這些測試。 有人遇到過這個問題嗎? 請幫助我,我花了幾個小時來調查這個問題。

附加信息:

Build info: version: '3.5.3', revision: 'a88d25fe6b', time: '2017-08-29T12:42:44.417Z'
      System info: host: '9ecf345f97e8', ip: '172.17.0.2', os.name: 'Linux', os.arch: 'amd64', os.version: '4.14.121-85.96.amzn1.x86_64', java.version: '1.8.0_51'
      Driver info: org.openqa.selenium.chrome.ChromeDriver
      Capabilities [{mobileEmulationEnabled=false, timeouts={implicit=0, pageLoad=300000, script=30000}, hasTouchScreen=false, platform=LINUX, acceptSslCerts=false, goog:chromeOptions={debuggerAddress=localhost:35983}, acceptInsecureCerts=false, webStorageEnabled=true, browserName=chrome, takesScreenshot=true, javascriptEnabled=true, platformName=LINUX, setWindowRect=true, unexpectedAlertBehaviour=ignore, applicationCacheEnabled=false, rotatable=false, networkConnectionEnabled=false, chrome={chromedriverVersion=2.46.628388 (4a34a70827ac54148e092aafb70504c4ea7ae926), userDataDir=/tmp/.org.chromium.Chromium.79YB7v}, takesHeapSnapshot=true, unhandledPromptBehavior=ignore, pageLoadStrategy=normal, strictFileInteractability=false, databaseEnabled=false, handlesAlerts=true, version=73.0.3683.103, browserConnectionEnabled=false, proxy=Proxy(), nativeEvents=true, locationContextEnabled=true, cssSelectorsEnabled=true}]

這個錯誤信息...

Build info: version: '3.5.3', revision: 'a88d25fe6b', time: '2017-08-29T12:42:44.417Z'
      System info: host: '9ecf345f97e8', ip: '172.17.0.2', os.name: 'Linux', os.arch: 'amd64', os.version: '4.14.121-85.96.amzn1.x86_64', java.version: '1.8.0_51'
      Driver info: org.openqa.selenium.chrome.ChromeDriver

...暗示ChromeDriver無法啟動/生成新的WebBrowser,Chrome 瀏覽器會話。

您的主要問題是您使用的二進制文件版本之間的不兼容,如下所示:

支持Chrome v71-73

  • 您正在使用chrome=73.0
  • 您的Selenium Client版本是2017-08-29T12:42:44.417Z 的3.5.3它早了將近2年。
  • 您的JDK 版本1.8.0_51 ,這是非常古老的。

因此, JDK v8u51Selenium Client v3.5.3ChromeDriver v2.46Chrome Browser v73.0之間存在明顯的不匹配


解決方案

  • JDK升級到當前級別JDK 8u212
  • Selenium升級到當前版本 3.141.59
  • 升級ChromeDriver當前ChromeDriver v76.0水平。
  • 更新Chrome瀏覽器目前的Chrome版本76.0的水平。 (根據ChromeDriver v76.0 發行說明
  • 通過IDE清理項目工作區並僅使用所需的依賴項重建項目。
  • 如果您的基本Web 客戶端版本太舊,請卸載它並安裝最新的 GA 和發布版本的Web 客戶端
  • 非 root用戶身份執行@Test

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM