【问题标题】:Unable to run selenium tests correctly in Jenkins无法在 Jenkins 中正确运行硒测试
【发布时间】:2019-12-08 09:05:42
【问题描述】:

我创建了一些硒测试。在本地运行没有问题。我想配置一个 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

我尝试了很多建议,例如 添加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}]

【问题讨论】:

标签: selenium google-chrome jenkins selenium-webdriver selenium-chromedriver


【解决方案1】:

此错误消息...

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 无法启动/生成新的 WebBrowserChrome 浏览器 会话。

您的主要问题是您使用的二进制文件版本之间的不兼容性,如下所示:

  • 您正在使用 chromedriver=2.46
  • chromedriver=2.46 的发行说明明确提及以下内容:

支持 Chrome v71-73

  • 您正在使用 chrome=73.0
  • 您的 Selenium Client 版本是 2017-08-29T12:42:44.417Z3.5.3,几乎是 2 岁。
  • 您的 JDK 版本1.8.0_51,相当古老。

所以 JDK v8u51Selenium Client v3.5.3ChromeDriver v2.46 之间存在明显的不匹配Chrome 浏览器 v73.0


解决方案

  • JDK升级到当前级别JDK 8u212
  • Selenium升级到当前级别Version 3.141.59
  • ChromeDriver 升级到当前的ChromeDriver v76.0 级别。
  • Chrome 更新到当前 Chrome 版本 76.0 级别。 (根据ChromeDriver v76.0 release notes
  • 清理你的项目工作区通过你的IDE重建你的项目只需要依赖。
  • 如果您的基本 Web 客户端 版本太旧,请卸载它并安装最新的 GA 和发布版本的 Web 客户端
  • 非root用户身份执行@Test

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-31
    • 2016-11-07
    • 2022-12-10
    • 1970-01-01
    相关资源
    最近更新 更多