端口无效,使用selenium启动chrome时,正在退出... org.openqa.selenium.os.OsProcess checkForError

wmomyfyw  于 2023-05-04  发布在  Go
关注(0)|答案(6)|浏览(126)

我使用selenium服务器独立jar- 3.11.0,最新的ChromeDriver-2.36和Chrome版本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.它给下面的错误

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
vmdwslir

vmdwslir1#

此错误消息...

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无法绑定到您系统内分配的空闲端口
根据讨论Getting Invalid port error.Invalid port. Exiting...

"Invalid port. Exiting..." occurs when the port assigned to chromedriver is less than 0 or greater than 65535.

解决方案

  • 通过 CLI 执行netstat命令,以查看是否已达到可能打开的连接的限制,或者检查给定端口上是否有其他应用程序正在运行。
  • 请检查您的防火墙设置,很可能是防火墙配置导致了此问题。
  • ChromeDriver 升级到当前的ChromeDriver v2.38级别。
  • Chrome 版本保持在***Chrome v66.x***级别。(as per ChromeDriver v2.38 release notes
    • 通过 IDE 清理 * 您的 * 项目工作区 *,并仅使用所需的依赖项 * 重建 * 您的项目。
  • 使用CCleaner工具在执行 test Suite 之前和之后清除所有操作系统杂务。
  • 如果您的基础 Web Client 版本太旧,请通过Revo Uninstaller卸载它,并安装最新的GA和发布版本的 Web Client
  • 执行 * 系统重启 * 以释放端口。
  • 执行您的@Test
    注意:步骤1、2、7、8是调试/解决当前问题的关键。

备选

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

  • 代码块:
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/");
  • 控制台输出:
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

参考资料

您可以在以下内容中找到一些相关的详细讨论:

  • 端口无效。Exiting..Exception in thread“main”org.openqa.selenium.WebDriverException:驱动程序服务器进程过早死亡ChromeDriver Selenium
  • org.openqa.selenium.os.OsProcess checkForError和org.apache.commons.exec.ExecuteException:进程退出,但Selenium ChromeDriver出错
  • “OsProcess checkForError:通过Java和Selenium启动Internet Explorer时,CreateProcess错误=193,%1不是有效的Win32应用程序
2lpgd968

2lpgd9682#

检查驱动器位置是否正确。我可以在没有任何问题的情况下推出Facebook。

package Practice;

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

public class Facebook 
{

    public static void main(String[] args) 
    {
        // TODO Auto-generated method stub

        System.setProperty("webdriver.chrome.driver", "./drivers/chromedriver.exe");

        WebDriver driver=new ChromeDriver();

        driver.get("http://www.facebook.com");

        driver.manage().window().maximize();

    }
}
krcsximq

krcsximq3#

将日期从阿拉伯语(或任何其他)更改为英语日期。

imzjd6km

imzjd6km4#

我来自伊朗。我也有这个错误,花了很多时间来寻找它。但最终通过将控制面板中的区域设置更改为英语来解决。

anauzrmj

anauzrmj5#

在我用了

WebDriver dev= new ChromeDriver(new ChromeDriverService.Builder().usingPort(YOUR PORT).build());

您可以通过打开WebDriver应用程序获取端口注:保持ChromeDriver运行

vlf7wbxs

vlf7wbxs6#

如果遇到无效端口退出错误,请尝试以下代码:

System.setProperty("webdriver.chrome.driver","C:\\Users\\Om Sai Ram\\workspace\\com.gmail\\chromedriver.exe" );
driver = new RemoteWebDriver(new URL("http://127.0.0.1:9515"), DesiredCapabilities.chrome());
driver.get("http://www.google.com");
driver.manage().window().maximize();

相关问题