通过Selenium启动电子应用程序时出现“未知错误:DevToolsActivePort文件不存在”

时间:2019-07-02 16:59:56

标签: python selenium electron selenium-chromedriver

我在Electron应用程序的 Windows 中有一些使用Selenium和chromedriver运行的自动化测试。我在测试脚本中进行了检查以从应用程序中提取Electron版本,如果它与我上次安装的chromedriver版本不匹配(硬编码,因为在二进制文件的任何地方都找不到Electron版本),则立即失败。我知道不匹配的chromedriver会引起头痛。

使用Electron 3.0.10和所需的chromedriver版本,一切正常。然后,该应用程序升级到Electron版本4.2.4,我的检查未通过测试。

所以我去https://github.com/electron/electron/releases/tag/v4.2.4并下载x64 Windows chromedriver,将其替换为原来的3.0.10 chromedriver,在检查代码中修改了版本,现在出现此错误:

unknown error: DevToolsActivePort file doesn't exist
  (Driver info: chromedriver=2.40.627115 (620b64671c6c18b7e1bb55c49ad4d073f458aa9b),platform=Windows NT 10.0.17134 x86_64) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 60.21 seconds
Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:25:53'
System info: host: '<HOSTNAME>', ip: '<IP>', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_131'
Driver info: driver.version: unknown
Stacktrace:
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0 (None:-2)
    ...

我缩短了Stacktrace:以使其更具可读性。

我以前已经看过这个,但是那是当我只是在使用最新的chromedriver版本之前,我才意识到它们必须匹配,而在安装正确的版本时,这个问题才得以解决。

我什至重新启动了Windows计算机,但没有任何作用。

在Selenium中,当我启动chromedriver时,我告诉它注销到文件,这是它的摘录:

[1562084989.049][INFO]: Cannot switch to US keyboard layout - some keys may be interpreted incorrectly
[1562084989.049][INFO]: Launching chrome: "C:\path\to\electron-app.exe" --disable-background-networking --disable-client-side-phishing-detection --disable-default-apps --disable-hang-monitor --disable-popup-blocking --disable-prompt-on-repost --disable-sync --disable-web-resources --enable-automation --enable-logging --force-fieldtrials=SiteIsolationExtensions/Control --ignore-certificate-errors --load-extension="C:\Users\admin\AppData\Local\Temp\scoped_dir4456_4825\internal" --log-level=0 --metrics-recording-only --no-first-run --password-store=basic --remote-debugging-port=0 --test-type=webdriver --use-mock-keychain --user-data-dir="c:\users\admin\appdata\local\temp\tgdfgx"
[1562085049.089][INFO]: Failed to connect to Chrome. Attempting to kill it.
[1562085049.158][INFO]: RESPONSE InitSession unknown error: DevToolsActivePort file doesn't exist
[1562085049.158][DEBUG]: Log type 'driver' lost 0 entries on destruction
[1562085049.158][DEBUG]: Log type 'browser' lost 0 entries on destruction

编辑:我也知道有很多关于此错误的StackOverflow帖子,但是在我浏览的所有内容中,并相信我经历了很多,人们使用的版本不匹配。但是我一直非常小心,不要这样做,而是使用正确的版本。

我尝试添加--no-sandbox时没有任何运气。

同样,一些答案提到添加--headless--disable-dev-shm-usage,但我不希望Chrome无头运行,我想运行一个可以看到的完整浏览器。其次,它可以在没有/dev/shm的Windows上运行!

0 个答案:

没有答案