【问题标题】:SessionNotCreatedException: Could not start a new session. Response code 500 error using Selenium Java and WebDriverManager through pom.xmlSessionNotCreatedException:无法启动新会话。通过 pom.xml 使用 Selenium Java 和 WebDriverManager 响应代码 500 错误
【发布时间】:2022-08-22 21:21:01
【问题描述】:

我想在 chrome beta 版本上测试我的脚本,因此我安装了 chrome beta 版本,但不知何故我无法使用 Selenium Java 启动它。我在pom.xml 文件中添加了所有需要的依赖项,涉及 webdriver 管理器等。我正在分享我的控制台错误和脚本。

ChromeOptions optionsBeta = new ChromeOptions();
optionsBeta.setBinary(\"C:\\\\Users\\\\WRP\\\\Downloads\\\\Programs\\\\ChromeSetup.exe\");
System.setProperty(\"webdriver.chrome.driver\", \"C:\\\\Users\\\\WRP\\\\eclipse-workspace\\\\PracticeProject\\\\Driver\\\\chromedriver.exe\");
WebDriver driver = new ChromeDriver(optionsBeta);
//System.setProperty(\"webdriver.chrome.driver\", \"./Driver/chromedriver.exe\");
//  WebDriver driver = new ChromeDriver();
WebDriverManager.chromedriver().setup();
//WebDriverManager.chromedriver().driverVersion(\"104.0.5112.29\").setup();
//WebDriver driver = new ChromeDriver();
WebDriverWait waits=new WebDriverWait (driver, Duration.ofSeconds(10));

错误跟踪日志:

Starting ChromeDriver 104.0.5112.29 (eff877e18f767c77fef0481a1cba402c8cbad404-refs/branch-heads/5112@{#422}) on port 55215
Only local connections are allowed.
Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe.
ChromeDriver was started successfully.
Exception in thread \"main\" org.openqa.selenium.SessionNotCreatedException: Could not start a new session. Response code 500. Message: unknown error: Chrome failed to start: crashed.
  (unknown error: DevToolsActivePort file doesn\'t exist)
  (The process started from chrome location C:\\Users\\WRP\\Downloads\\Programs\\ChromeSetup.exe is no longer running, so ChromeDriver is assuming that Chrome has crashed.)
Build info: version: \'4.3.0\', revision: \'a4995e2c09*\'
System info: host: \'AWAIS-PC\', ip: \'192.168.1.62\', os.name: \'Windows 10\', os.arch: \'amd64\', os.version: \'10.0\', java.version: \'18.0.1\'
Driver info: org.openqa.selenium.chrome.ChromeDriver
Command: [null, newSession {capabilities=[Capabilities {browserName: chrome, goog:chromeOptions: {args: [], binary: C:\\Users\\WRP\\Downloads\\Prog..., extensions: []}}], desiredCapabilities=Capabilities {browserName: chrome, goog:chromeOptions: {args: [], binary: C:\\Users\\WRP\\Downloads\\Prog..., extensions: []}}}]
    at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:144)
    at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:102)
    at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:67)
    at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:156)
    at org.openqa.selenium.remote.service.DriverCommandExecutor.invokeExecute(DriverCommandExecutor.java:167)
    at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:142)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:569)
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:264)
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:179)
    at org.openqa.selenium.chromium.ChromiumDriver.<init>(ChromiumDriver.java:101)
    at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:81)
    at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:70)
    at First_Test.Practice_First.main(Practice_First.java:29)
  • 将二进制路径更改为现有 chrome.exe 文件,而不是 Chrome设置。可执行程序。

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


【解决方案1】:

此错误消息...

Exception in thread "main" org.openqa.selenium.SessionNotCreatedException: Could not start a new session. Response code 500. Message: unknown error: Chrome failed to start: crashed.
  (unknown error: DevToolsActivePort file doesn't exist)
  (The process started from chrome location C:\Users\WRP\Downloads\Programs\ChromeSetup.exe is no longer running, so ChromeDriver is assuming that Chrome has crashed.)

...暗示ChromeDriver 无法启动/产生一个新的浏览上下文 会话。

您必须在这里处理以下几件事:

  • setBinary() 参数应该用于指向二进制可执行文件,即chrome.exe安装浏览器软件后(ChromeSetup.exe)

    optionsBeta.setBinary("C:\\location\\to\\chrome.exe");
    
  • 你会用任何一个以下的 (不是都):

    • 下载的版本chromedriver.exe使用System.setProperty() 行如下:

      System.setProperty("webdriver.chrome.driver", "C:\\Users\\WRP\\eclipse-workspace\\PracticeProject\\Driver\\chromedriver.exe");
      
    • 网络驱动管理器pom.xml 中的依赖项并将 chromedriver 设置为:

      WebDriverManager.chromedriver().setup();
      

您的有效代码块将是:

  • 使用下载的ChromeDriver

    System.setProperty("webdriver.chrome.driver", "C:\\Users\\WRP\\eclipse-workspace\\PracticeProject\\Driver\\chromedriver.exe");
    ChromeOptions optionsBeta = new ChromeOptions();
    optionsBeta.setBinary("C:\\location\\to\\chrome.exe");      
    WebDriver driver = new ChromeDriver(optionsBeta);
    
  • 使用Maven 依赖pom.xml:

    WebDriverManager.chromedriver().driverVersion("104.0.5112.29").setup();
    ChromeOptions optionsBeta = new ChromeOptions();
    optionsBeta.setBinary("C:\\location\\to\\chrome.exe");      
    WebDriver driver = new ChromeDriver(optionsBeta);
    

【讨论】:

  • 非常感谢您的宝贵反馈,它真的对我有用
【解决方案2】:

我有类似的问题,但即使我使用建议的解决方案来下载 chromedriver,问题仍然存在。我正在通过ubuntu20.04 中的终端运行我的应用程序,使用jdk-17,可能有什么问题?

我已经尝试过这种方法,通过将其改编为 linux chromedriver:

System.setProperty("webdriver.chrome.driver", "location/to/chromedriver");
ChromeOptions optionsBeta = new ChromeOptions();
optionsBeta.setBinary("/location/to/chromedriver");      
WebDriver driver = new ChromeDriver(optionsBeta);

错误日志:

Starting ChromeDriver 104.0.5112.79 (3cf3e8c8a07d104b9e1260c910efb8f383285dc5-refs/branch-heads/5112@{#1307}) on port 56194
Only local connections are allowed.
Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe.
[1661173314.148][SEVERE]: CreatePlatformSocket() failed: Address family not supported by protocol (97)
ChromeDriver was started successfully.
Starting ChromeDriver 104.0.5112.79 (3cf3e8c8a07d104b9e1260c910efb8f383285dc5-refs/branch-heads/5112@{#1307}) on port 9515
Only local connections are allowed.
Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe.
Invalid --log-level value.
Unable to initialize logging. Exiting...
Exception in thread "main" org.openqa.selenium.SessionNotCreatedException: Could not start a new session. Response code 500. Message: unknown error: Chrome failed to start: exited abnormally.
  (unknown error: DevToolsActivePort file doesn't exist)
  (The process started from chrome location ./chromedriver is no longer running, so ChromeDriver is assuming that Chrome has crashed.)
Build info: version: '4.4.0', revision: 'e5c75ed026a'
System info: host: '8f6b4ac96fa8', ip: '172.17.0.2', os.name: 'Linux', os.arch: 'amd64', os.version: '5.15.0-41-generic', java.version: '17.0.4'
Driver info: org.openqa.selenium.chrome.ChromeDriver

【讨论】:

    猜你喜欢
    • 2022-12-12
    • 2022-07-15
    • 1970-01-01
    • 1970-01-01
    • 2022-08-17
    • 1970-01-01
    • 2020-05-16
    • 2020-05-13
    • 2010-11-27
    相关资源
    最近更新 更多