我试图用一个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中一切都很好
有很多可能的原因导致RESPONSE InitSession ERROR unknown ERROR: DevToolsActivePort文件不存在错误消息(正如我们可以从这个问题的答案数量中看到的)。因此,让我们更深入地解释这个错误消息的确切含义。
根据chromedriver源代码,消息是在ParseDevToolsActivePortFile方法中创建的。此方法在启动chrome进程后从循环中调用。
在循环中,驱动程序检查chrome进程是否仍在运行,如果ParseDevToolsActivePortFile文件已经由chrome创建。这个循环有一个硬编码的60s超时。
我认为这条信息可能有两个原因:
Chrome在启动过程中非常慢——例如由于缺乏系统资源——主要是CPU或内存。在这种情况下,它可以发生,有时铬管理开始在时间限制,有时不是。
还有一个问题,防止chrome启动-缺失或破碎的依赖,错误的配置等。在这种情况下,这个错误消息并没有真正的帮助,您应该找到另一个日志消息来解释失败的真正原因。
我遇到了同样的问题,我使用UBUNTU, PYTHON和OPERA浏览器。在我的例子中,这个问题是因为我有一个过时的operadriver版本。
解决方案:
1. 确保您安装了最新的opera浏览器版本(不要使用opera beta或opera developer),为此请到opera官方网站并从那里下载最新的opera_stable版本。
安装最新的opera驱动程序(如果你已经安装了一个opera驱动程序,你必须先使用sudo rm删除它…)
wget https://github.com/operasoftware/operachromiumdriver/releases/download/v.80.0.3987.100/operadriver_linux64.zip
unzip operadriver_linux64.zip
sudo mv operadriver /usr/bin/operadriver
sudo chown root:root /usr/bin/operadriver
sudo chmod +x /usr/bin/operadriver
在我的情况下,最新的是80.0.3987,你可以看到
此外,我还安装了chromedriver(但因为我在测试之前做了,我不知道这是需要的),为了安装chromedriver,遵循上一步的步骤
好好享受吧,谢谢我!
示例硒代码
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Opera()
driver.get("http://www.python.org")
assert "Python" in driver.title
elem = driver.find_element_by_name("q")
elem.clear()
elem.send_keys("pycon")
elem.send_keys(Keys.RETURN)
assert "No results found." not in driver.page_source
driver.quit()
更新conf.js中的功能
exports.config = {
seleniumAddress: 'http://localhost:4444/wd/hub',
specs: ['todo-spec.js'],
capabilities: {
browserName: 'chrome',
chromeOptions: {
args: ['--disable-gpu', '--no-sandbox', '--disable-extensions', '--disable-dev-shm-usage']
}
},
};
我在Ubuntu 20和Python Selenium上遇到了这个问题,我首先单独下载了chromedriver,然后使用sudo apt install chromium-browser,尽管它们是同一个版本,但这种情况一直发生。
我的修复是使用提供的chrome驱动程序,附带的回购包位于
/snap/bin/chromium.chromedriver
driver = webdriver.Chrome(chrome_options=options, executable_path='/snap/bin/chromium.chromedriver')