SessionNotCreatedException:消息:无法创建新服务:使用 Selenium 3.14.0 和 Python 3.7.3 的 ChromeDriverService

SessionNotCreatedException: Message: Unable to create new service: ChromeDriverService with Selenium 3.14.0 and Python 3.7.3

Python 3.7.3

Pycharm 2019.1.3

selenium 独立版 3.14.0

硒 3.141.0

Java JDK 12.0.2

Windows 7

当我尝试使用远程 webdriver 编写 运行 脚本时出现错误,我的 java.version 不是我预期的(预期版本至少为 12。):

selenium.common.exceptions.SessionNotCreatedException: Message: Unable to create new service: ChromeDriverService
Build info: version: '3.14.0', revision: 'aacccce0', time: '2018-08-02T20:13:22.693Z'
System info: host: 'host_name', ip: 'localhost', os.name: 'Windows 7', os.arch: 'x86', os.version: '6.1', java.version: '1.8.0_221'
Driver info: driver.version: unknown
Stacktrace:
    at org.openqa.selenium.remote.server.ServicedSession$Factory.lambda$get[=11=] (ServicedSession.java:134)
    at org.openqa.selenium.remote.server.ServicedSession$Factory.apply (ServicedSession.java:151)
    at org.openqa.selenium.remote.server.ActiveSessionFactory.lambda$apply (ActiveSessionFactory.java:177)
    at java.util.stream.ReferencePipeline.accept (None:-1)
    at java.util.stream.ReferencePipeline.accept (None:-1)
    at java.util.stream.ReferencePipeline.accept (None:-1)
    at java.util.Spliterators$ArraySpliterator.tryAdvance (None:-1)
    at java.util.stream.ReferencePipeline.forEachWithCancel (None:-1)
    at java.util.stream.AbstractPipeline.copyIntoWithCancel (None:-1)
    at java.util.stream.AbstractPipeline.copyInto (None:-1)
    at java.util.stream.AbstractPipeline.wrapAndCopyInto (None:-1)
    at java.util.stream.FindOps$FindOp.evaluateSequential (None:-1)
    at java.util.stream.AbstractPipeline.evaluate (None:-1)
    at java.util.stream.ReferencePipeline.findFirst (None:-1)
    at org.openqa.selenium.remote.server.ActiveSessionFactory.apply (ActiveSessionFactory.java:180)
    at org.openqa.selenium.remote.server.NewSessionPipeline.lambda$null (NewSessionPipeline.java:65)
    at java.util.stream.ReferencePipeline.accept (None:-1)
    at java.util.stream.ReferencePipeline.accept (None:-1)
    at java.util.Collections.tryAdvance (None:-1)
    at java.util.stream.ReferencePipeline.forEachWithCancel (None:-1)
    at java.util.stream.AbstractPipeline.copyIntoWithCancel (None:-1)
    at java.util.stream.AbstractPipeline.copyInto (None:-1)
    at java.util.stream.AbstractPipeline.wrapAndCopyInto (None:-1)
    at java.util.stream.FindOps$FindOp.evaluateSequential (None:-1)
    at java.util.stream.AbstractPipeline.evaluate (None:-1)
    at java.util.stream.ReferencePipeline.findFirst (None:-1)
    at org.openqa.selenium.remote.server.NewSessionPipeline.lambda$createNewSession (NewSessionPipeline.java:68)
    at java.util.stream.ReferencePipeline.accept (None:-1)
    at java.util.stream.ReferencePipeline.accept (None:-1)
    at java.util.stream.ReferencePipeline.accept (None:-1)
    at java.util.stream.DistinctOps.accept (None:-1)
    at java.util.stream.ReferencePipeline.accept (None:-1)
    at java.util.stream.ReferencePipeline.accept (None:-1)
    at java.util.stream.ReferencePipeline.accept (None:-1)
    at java.util.stream.Streams$StreamBuilderImpl.tryAdvance (None:-1)
    at java.util.stream.Streams$ConcatSpliterator.tryAdvance (None:-1)
    at java.util.stream.ReferencePipeline.forEachWithCancel (None:-1)
    at java.util.stream.AbstractPipeline.copyIntoWithCancel (None:-1)
    at java.util.stream.AbstractPipeline.copyInto (None:-1)
    at java.util.stream.AbstractPipeline.wrapAndCopyInto (None:-1)
    at java.util.stream.FindOps$FindOp.evaluateSequential (None:-1)
    at java.util.stream.AbstractPipeline.evaluate (None:-1)
    at java.util.stream.ReferencePipeline.findFirst (None:-1)
    at org.openqa.selenium.remote.server.NewSessionPipeline.createNewSession (NewSessionPipeline.java:71)
    at org.openqa.selenium.remote.server.commandhandler.BeginSession.execute (BeginSession.java:65)
    at org.openqa.selenium.remote.server.WebDriverServlet.lambda$handle (WebDriverServlet.java:250)
    at java.util.concurrent.Executors$RunnableAdapter.call (None:-1)
    at java.util.concurrent.FutureTask.run (None:-1)
    at java.util.concurrent.ThreadPoolExecutor.runWorker (None:-1)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run (None:-1)
    at java.lang.Thread.run (None:-1)

我已经尝试重新安装 java JDK 但版本保持不变 - 1.8。0_221

我在 python 中的代码:

driver = webdriver.Remote(
   command_executor='http://10.20.10.193:4444/wd/hub',
   desired_capabilities=DesiredCapabilities.CHROME)

driver.get('https://google.com')

设置硒服务器:

java -jar selenium-server-standalone-3.14.0.jar

我做错了什么?

这个错误信息...

selenium.common.exceptions.SessionNotCreatedException: Message: Unable to create new service: ChromeDriverService
Build info: version: '3.14.0', revision: 'aacccce0', time: '2018-08-02T20:13:22.693Z'
System info: host: 'host_name', ip: 'localhost', os.name: 'Windows 7', os.arch: 'x86', os.version: '6.1', java.version: '1.8.0_221'
Driver info: driver.version: unknown

...表示 ChromeDriver 未被识别。

您的主要问题是您使用的二进制文件版本之间不兼容,如下所示:

Selenium Client Driver 页面提及:

所以可能 Python 3.7.3 仍然不受支持,您可能需要将 python 降级到相关版本。


结尾