不 与完全相同
- 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,主要是因为您说过想要无头执行。为此:
-
下载docker桌面https://www.docker.com/products/docker-desktop/
-
运行
docker run -d -p 4444:4444 -p 5900:5900 --shm-size="2g" selenium/standalone-chrome:4.1.4-20220427
(这将在docker容器中下载并启动一个独立的chromedriver) -
将您的服务器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