我试图用一个URL启动chrome浏览器,浏览器启动后,它什么也不做。

1分钟后我看到如下错误:

Unable to open browser with url: 'https://www.google.com' (Root cause: org.openqa.selenium.WebDriverException: unknown error: DevToolsActivePort file doesn't exist
  (Driver info: chromedriver=2.39.562718 (9a2698cba08cf5a471a29d30c8b3e12becabb0e9),platform=Windows NT 10.0.15063 x86_64) (WARNING: The server did not provide any stacktrace information)

我的配置:

Chrome浏览器:66 ChromeBrowser: 2.39.56

又及,在Firefox中一切都很好


当前回答

我遇到了同样的问题,在我的情况下,Linux系统中有两个不同的常见用户userera和userB。 userA第一次运行selinium程序成功启动chrome浏览器,当到达userB时,出现DevToolsActivePort文件不存在的错误。

我尝试了——remote-debug -port=9222选项,但它导致了一个新的异常: selenium.common.exceptions.WebDriverException: Message: chrome不可达

I run google-chome目录,看到以下错误: mkdir /tmp/Crashpad/new: Permission denied (13)

我搜索了这个问题,得到了这个: https://johncylee.github.io/2022/05/14/chrome-headless-%E6%A8%A1%E5%BC%8F%E4%B8%8B-devtoolsactiveport-file-doesn-t-exist-%E5%95%8F%E9%A1%8C/

chrome_options.add_argument(f"--crash-dumps-dir={os.path.expanduser('~/tmp/Crashpad')}")

感谢@johncylee。

其他回答

在我的例子中,当我试图使用我的默认用户配置文件时,它发生了:

...
options.addArguments("user-data-dir=D:\\MyHomeDirectory\\Google\\Chrome\\User Data");
...

这触发chrome重用已经在后台运行的进程,以这种方式,由chromedriver.exe启动的进程简单地结束。

解决方法:关闭所有在后台运行的chrome.exe进程。

我用Jenkins在Ubuntu 18 LTS linux上运行selenium测试。我有这个错误,直到我像这样添加了参数'headless'(以及其他一些参数):

ChromeOptions options = new ChromeOptions();
options.addArguments("headless"); // headless -> no browser window. needed for jenkins
options.addArguments("disable-infobars"); // disabling infobars
options.addArguments("--disable-extensions"); // disabling extensions
options.addArguments("--disable-dev-shm-usage"); // overcome limited resource problems
options.addArguments("--no-sandbox"); // Bypass OS security model
ChromeDriver driver = new ChromeDriver(options);

driver.get("www.google.com");

我遇到了同样的问题,在我的情况下,Linux系统中有两个不同的常见用户userera和userB。 userA第一次运行selinium程序成功启动chrome浏览器,当到达userB时,出现DevToolsActivePort文件不存在的错误。

我尝试了——remote-debug -port=9222选项,但它导致了一个新的异常: selenium.common.exceptions.WebDriverException: Message: chrome不可达

I run google-chome目录,看到以下错误: mkdir /tmp/Crashpad/new: Permission denied (13)

我搜索了这个问题,得到了这个: https://johncylee.github.io/2022/05/14/chrome-headless-%E6%A8%A1%E5%BC%8F%E4%B8%8B-devtoolsactiveport-file-doesn-t-exist-%E5%95%8F%E9%A1%8C/

chrome_options.add_argument(f"--crash-dumps-dir={os.path.expanduser('~/tmp/Crashpad')}")

感谢@johncylee。

由于这是针对这类错误的最活跃的消息,所以我想提一下我的解决方案(在花了几个小时来修复这个问题之后)。

On Ubuntu 18.04, using Chrome 70 and Chromedriver 2.44, and Python3 I kept getting the same DevToolsActivePort error, even when I disabled all options listed above. The chromedriver log file as well as ps showed that the chromedriver I set in chrome_options.binary_location was running, but it always gave DevToolsActivePort error. When I removed chrome_options.binary_location='....' and add it to webdriver creation, I get it working fine. webdriver.Chrome('/path to ... /chromedriver',chrome_options=chrome_options)

感谢大家的意见,让我理解并解决了这个问题。

在我的情况下,当我改变google-chrome和chromedriver版本时,错误被修复了:)

#google-chrome version
[root@localhost ~]# /usr/bin/google-chrome --version
Google Chrome 83.0.4103.106 

#chromedriver version
[root@localhost ~]# /usr/local/bin/chromedriver -v
ChromeDriver 83.0.4103.14 (be04594a2b8411758b860104bc0a1033417178be-refs/branch-heads/4103@{#119})

Ps:硒版本为3.9.1