无效的端口.退出... org.openqa.selenium.os.OsProcess checkForError 使用 selenium 启动 chrome 时 [英] Invalid port. Exiting... org.openqa.selenium.os.OsProcess checkForError while launching chrome using selenium

查看:34
本文介绍了无效的端口.退出... org.openqa.selenium.os.OsProcess checkForError 使用 selenium 启动 chrome 时的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用 selenium 服务器独立 jar-3.11.0、最新的 ChromeDriver-2.36 和Chrome 版本 66.0.3359.139

I am using selenium server standalone jar- 3.11.0, latest ChromeDriver-2.36 and Chrome version 66.0.3359.139

我的代码

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

public class WebDriverBasics {

    public static void main(String[] args) {

        System.setProperty("webdriver.chrome.driver", "C:\Users\surya\Downloads\Compressed\chromedriver_win32_2\chromedriver.exe");
        WebDriver driver=new ChromeDriver();
        driver.get("http://www.facebook.com");
        driver.manage().window().maximize();
    }
}

但我无法启动 chrome.its 给出以下错误

But i am unable to launch chrome.its giving below error

Invalid port. Exiting...
?? ??, ???? ??:??:?? ????????? org.openqa.selenium.os.OsProcess checkForError
SEVERE: org.apache.commons.exec.ExecuteException: Process exited with an error: 1 (Exit value: 1)
Exception in thread "main" org.openqa.selenium.WebDriverException: Timed out waiting for driver server to start.
Build info: version: '3.11.0', revision: 'e59cfb3', time: '2018-03-11T20:33:15.31Z'
System info: host: 'DESKTOP-5GVJDVR', ip: '192.168.0.104', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_171'
Driver info: driver.version: ChromeDriver
    at org.openqa.selenium.remote.service.DriverService.waitUntilAvailable(DriverService.java:192)
    at org.openqa.selenium.remote.service.DriverService.start(DriverService.java:178)
    at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:79)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:545)
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:209)
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:132)
    at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:181)
    at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:168)
    at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:123)
    at WebDriverBasics.main(WebDriverBasics.java:12)
Caused by: org.openqa.selenium.net.UrlChecker$TimeoutException: Timed out waiting for [http://localhost:????/status] to be available after ????? ms
    at 

推荐答案

此错误信息...

Invalid port. Exiting...
?? ??, ???? ??:??:?? ????????? org.openqa.selenium.os.OsProcess checkForError
SEVERE: org.apache.commons.exec.ExecuteException: Process exited with an error: 1 (Exit value: 1)

...表示 OsProcess 无法绑定到系统内分配的空闲端口.

...implies that the OsProcess is unable to bind to the assigned free port within your system.

根据讨论 获取无效端口错误.无效的端口.正在退出...

"无效的端口.退出……"当分配给 chromedriver 的端口小于 0 或大于 65535 时发生.

解决方案

  • 通过 CLI 执行 netstat 命令以查看您是否已达到可能打开的连接的限制,或检查给定端口上是否有其他应用程序正在运行.
  • 检查您的防火墙设置,很可能是防火墙配置导致了问题.
  • ChromeDriver 升级到当前的 ChromeDriverv2.38 级别.
  • Chrome 版本保持在 Chrome v66.x 级别.(根据 ChromeDriver v2.38 发行说明)
  • 清理您的项目工作区,通过您的 IDE重建您的项目,仅使用所需的依赖项.
  • 使用 CCleaner 工具清除所有操作系统杂事在执行测试套件之后.
  • 如果您的基本Web Client 版本太旧,请通过卸载它Revo Uninstaller 并安装 Web Client 的最新 GA 和发布版本.
  • 进行系统重启以释放端口.
  • 执行您的@Test.
  • Solution

    • Execute netstat command through CLI to see if you have reached limit of possible open connections or check if there is another application running on the given port.
    • Check your firewall settings, there is a good chance that firewall configuration may be causing the issue.
    • Upgrade ChromeDriver to current ChromeDriver v2.38 level.
    • Keep Chrome version at Chrome v66.x levels. (as per ChromeDriver v2.38 release notes)
    • Clean your Project Workspace through your IDE and Rebuild your project with required dependencies only.
    • Use CCleaner tool to wipe off all the OS chores before and after the execution of your test Suite.
    • If your base Web Client version is too old, then uninstall it through Revo Uninstaller and install a recent GA and released version of Web Client.
    • Take a System Reboot to free up the ports.
    • Execute your @Test.
    • 注意:第 1、2、7 和 8 步对于调试/解决您当前面临的问题至关重要.

      Note : Steps 1, 2, 7 and 8 are vital to debug/solve the issue you are currently facing.

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

      As an alternative you can force the WebDriver variant i.e. ChromeDriver to start on a specific port e.g. 65530 as follows:

      • 代码块:

      • Code Block:

      System.setProperty("webdriver.chrome.driver","C:\WebDrivers\chromedriver.exe");
      WebDriver driver= new ChromeDriver(new ChromeDriverService.Builder().usingPort(65530).build());
      driver.get("https://www.google.com/");
      

    • 控制台输出:

    • Console Output:

      Starting ChromeDriver 83.0.4103.39 (ccbf011cb2d2b19b506d844400483861342c20cd-refs/branch-heads/4103@{#416}) on port 65530
      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
      

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

      You can find a couple of relevant detailed discussions in:

      这篇关于无效的端口.退出... org.openqa.selenium.os.OsProcess checkForError 使用 selenium 启动 chrome 时的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆