SeleniumRemoteWebDriver使用示例(如何修复Selenium.WebDriverException:



与完全相同

  • Chrome无法访问Selenium WebDriver错误
  • selenium.WebDriverException:chrome不可访问
  • selenium.WebDriverException:chrome不可访问

我正在Linux 上使用ChromeDriver运行Selenium测试

并尝试运行其演示,包括以下内容:

import java.io.File;
import java.io.IOException;
import java.net.*;
import org.junit.*;
import org.junit.runner.RunWith;
import org.junit.runners.BlockJUnit4ClassRunner;
import org.openqa.selenium.*;
import org.openqa.selenium.chrome.ChromeDriverService;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;
public class ChromeRemoteDriver {

public static void main(String []args) throws MalformedURLException{
new DesiredCapabilities();
URL serverurl = new URL("http://localhost:9515");
DesiredCapabilities capabilities = DesiredCapabilities.chrome();
WebDriver driver = new RemoteWebDriver(serverurl,capabilities);
driver.get("http://www.google.com");
WebElement searchEdit = driver.findElement(By.name("q"));
searchEdit.sendKeys("Selftechy on google");
searchEdit.submit();
}
}

在我开始我的本地ChromeDriver:之后

/usr/local/bin/chromedriver &
[1] 27777
Starting ChromeDriver 101.0.4951.41 (93c720db8323b3ec10d056025ab95c23a31997c9-refs/branch-heads/4951@{#904}) on port 9515
Only local connections are allowed.
Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe.
ChromeDriver was started successfully.

但是当运行上面的演示时,我得到了:

May 13, 2022 11:51:26 PM org.openqa.selenium.remote.DesiredCapabilities chrome
Exception in thread "main" org.openqa.selenium.WebDriverException: chrome not reachable
Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:25:53'

为什么会出现这种情况以及如何解决?

我遇到过类似的问题。我正在本地运行我的CCD_ 1测试;CCD_ 2铬不可达";错误突然出现了。

问题是我的普通chrome浏览器中已经有太多的选项卡了。在感到沮丧之后,我关闭了几个选项卡,突然它起了作用。我不确定标签是否有一定的限制,但你可以试试。

我建议使用docker来运行chromedriver,主要是因为您说过想要无头执行。为此:

  1. 下载docker桌面https://www.docker.com/products/docker-desktop/

  2. 运行docker run -d -p 4444:4444 -p 5900:5900 --shm-size="2g" selenium/standalone-chrome:4.1.4-20220427(这将在docker容器中下载并启动一个独立的chromedriver)

  3. 将您的服务器URL更改为URL serverurl = new URL("http:localhost:4444/wd/hub");

完整的主方法:

public static void main(String []args) throws MalformedURLException {
new DesiredCapabilities();
URL serverurl = new URL("http:localhost:4444/wd/hub");
DesiredCapabilities capabilities = DesiredCapabilities.chrome();
WebDriver driver = new RemoteWebDriver(serverurl,capabilities);
driver.get("http://www.google.com");
WebElement searchEdit = driver.findElement(By.name("q"));
searchEdit.sendKeys("Selftechy on google");
searchEdit.submit();
}


  • 有关受试者的更多信息,请点击此处:https://github.com/SeleniumHQ/docker-selenium

  • 如果你想在4444以外的端口上运行容器,你需要为chrome创建自己的docker映像,并使用你想要的端口的EXPOSE值:-

如何创建具有可变端口(4444)的硒/独立铬图像

https://github.com/SeleniumHQ/docker-selenium/blob/trunk/StandaloneChrome/Dockerfile

相关内容

  • 没有找到相关文章

最新更新