【问题标题】:Invalid port. Exiting..Exception in thread "main" org.openqa.selenium.WebDriverException: Driver server process died prematurely ChromeDriver Selenium端口无效。 Exiting..Exception in thread "main" org.openqa.selenium.WebDriverException:驱动程序服务器进程过早死亡 ChromeDriver Selenium
【发布时间】:2020-07-20 10:40:13
【问题描述】:

安装细节

我已经安装了

  • java 版本:1.8
  • 硒罐版本:3.141.59,
  • chrome 浏览器版本:84.0.4147.89.

我想使用 selenium web-driver 测试用例在 chrome 浏览器中启动 google。但由于上述附加问题,我无法启动。

请帮我解决问题。

【问题讨论】:

  • 需要帮助解决上述问题
  • 你能用基于文本的错误堆栈跟踪更新问题吗?
  • 感谢您的回复,我已经完成了基于文本错误的堆栈跟踪,但没有找到问题的确切解决方案
  • 请阅读为什么screenshot of HTML or code or error is a bad idea。考虑使用基于格式化文本的相关 HTML、代码试验和错误堆栈跟踪来更新问题。
  • 谢谢你上面的建议帮助我理解了确切的问题。

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


【解决方案1】:

此错误消息...

Invalid port. Exiting...
Exception in thread "main" org.openqa.selenium.WebDriverException: Driver server process died prematurely.

...暗示 ChromeDriver 服务器进程无法绑定到您系统中分配的空闲端口

根据Getting Invalid port errorInvalid port. Exiting...的讨论

"Invalid port.Exiting..." 当分配给 chromedriver 的端口小于 0 或大于 65535 时出现。


调试步骤

按以下步骤逐一解决问题:

  • 通过CLI执行netstat命令,看看你是否达到了可能打开的连接的限制,或者检查ChromeDriver使用的端口上是否有另一个应用程序运行。
  • 检查您的防火墙设置,防火墙配置很可能会阻止通信。
  • ChromeDriver 升级到当前的ChromeDriver v2.84 级别。
  • Chrome 升级到当前的 Chrome v84.0 级别。 (as per ChromeDriver v84.0 release notes)
  • 如果您的基本 Web 客户端 版本太旧,请卸载它并安装最新的 GA 和发布版本的 Web 客户端
  • 清理你的项目工作区通过你的IDE重建你的项目只需要依赖。
  • 仅适用于 Windows 操作系统)使用 CCleaner 工具在您的测试套件执行前后清除所有操作系统杂务。
  • 仅限 LinuxOSFree Up and Release the Unused/Cached Memory in Ubuntu/Linux Mint 在执行您的测试套件之前和之后。
  • 进行系统重启以释放使用的端口。
  • 非root用户身份执行@Test
  • 始终在 tearDown(){} 方法中调用 driver.quit() 以优雅地关闭和销毁 WebDriverWeb Client 实例。

另类

作为替代方案,您可以强制 WebDriver 变体,即 ChromeDriver 在特定端口上启动,例如65535如下:

  • 代码块:

    System.setProperty("webdriver.chrome.driver","C:\\WebDrivers\\chromedriver.exe");
    WebDriver driver= new ChromeDriver(new ChromeDriverService.Builder().usingPort(65535).build());
    driver.get("https://www.google.com/");
    
  • 控制台输出:

    Starting ChromeDriver 83.0.4103.39 (ccbf011cb2d2b19b506d844400483861342c20cd-refs/branch-heads/4103@{#416}) on port 65535
    Only local connections are allowed.
    Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe.
    ChromeDriver was started successfully.
    Jul 20, 2020 7:36:17 PM org.openqa.selenium.remote.ProtocolHandshake createSession
    INFO: Detected dialect: W3C
    

参考文献

您可以在以下位置找到一些相关的详细讨论:

【讨论】:

  • 系统重启帮我解决了这个问题,这是你建议的。谢谢!!!
【解决方案2】:

您的驱动配置似乎有问题,可能是配置代码、驱动版本或Windows配置,甚至是浏览器本身。 Here is a tutorial step by step on how to 正确配置基础:

Here is how to configure the code side and also the last version of chrome:

如果您正在从事 maven 项目,我想提出一个建议: 使用:bonigarcia webdrivermanager 库。只需将其添加到您的 pom 中

<!-- https://mvnrepository.com/artifact/io.github.bonigarcia/webdrivermanager -->
    <dependency>
        <groupId>io.github.bonigarcia</groupId>
        <artifactId>webdrivermanager</artifactId>
        <version>3.2.0</version>
    </dependency>

而且配置要简单得多。

...
WebDriver driver= driverClass.getDeclaredConstructor().newInstance();
WebDriverUtils util = new WebDriverUtils(driver);
driver.get("google.com");
...

就是这样! 有了这个,您将不必担心驱动程序的配置,它会自动导入驱动程序并为您配置它。 Here is a tutorial,如果你想试试的话。

【讨论】:

    【解决方案3】:

    您需要在此链接更新您的exe版本https://chromedriver.chromium.org/downloads您可以下载驱动程序exe并在路径中设置

    你可以杀死chrome exe并刷新并重新运行(注意打开cmd并粘贴此行并输入taskkill /im chromedriver.exe /f并重新运行项目

    请导入import org.openqa.selenium.chrome.ChromeDriver;

    【讨论】:

    • 我已经厌倦了上面给出的解决方案,但我仍然面临同样的问题。
    • 请告诉我,任何其他替代解决方案。
    【解决方案4】:

    在我的情况下,ChromeDriver 版本 wss 与 Chrome 浏览器版本不兼容。确保您使用的是正确的版本。

    如果您不知道哪些版本兼容,可以在这里找到更多信息--> Which ChromeDriver version is compatible with which Chrome Browser version?

    【讨论】:

    • 谢谢,我已经添加了兼容的驱动和浏览器。
    【解决方案5】:

    对于上述问题,我明白了根本原因。

    错误:我在环境变量中添加 JAVA_HOME 时删除了系统变量路径的错误。 因此我建议,在添加或编辑系统变量时,请不要删除任何系统路径。

    第二件事:我已经重置了window-10操作系统以获得确切的系统路径,它支持我执行selenium测试用例。

    由于在环境变量中设置了错误的系统路径,我的系统操作系统无法访问特定的浏览器驱动程序。 这意味着,Chrome 驱动程序服务器进程无法绑定到我们系统中分配的空闲端口。

    结论:通过重置 windows-10 操作系统,上述问题已为我解决。 安装eclipse编辑器、JDK、selenium jar文件、不同的驱动和各自的浏览器并执行测试用例。

    我希望它对面临同样问题的人有所帮助。 谢谢..

    【讨论】:

      猜你喜欢
      • 2021-11-29
      • 2022-12-02
      • 1970-01-01
      • 2023-03-24
      • 1970-01-01
      • 1970-01-01
      • 2018-02-22
      • 2014-03-23
      • 2018-01-22
      相关资源
      最近更新 更多