【发布时间】:2021-02-03 02:47:12
【问题描述】:
我正在尝试使用 Java 和 Edge 驱动程序(基于 Chromium)运行 Selenium 测试。
我在Windows 10上安装的Edge Dev的版本是83.0.478.37(官方构建开发64位):
硒版本:3.141.59
我为此使用了 webdrivermanager 设置,并使用了here 提供的示例。
我在没有使用 webdriver manager 的情况下尝试了它包含的许多选项,但仍然报错。
不使用 Webdriver Manager
System.setProperty("webdriver.edge.driver", System.getProperty("user.dir")
+ "\\drivers\\msedgedriver.exe");
EdgeOptions edgeOptions = new EdgeOptions();
chromeOptions = new ChromeOptions();
chromeOptions.addArguments("disable-gpu");
chromeOptions.setBinary("C:\\Program Files (x86)\\Microsoft\\Edge\\Application\\msedge.exe");
edgeOptions = edgeOptions.merge(chromeOptions);
remDriver = new EdgeDriver(edgeOptions);
与 关注here的其他解决方案
我错过了什么吗?
下面的错误堆栈跟踪 -
org.openqa.selenium.SessionNotCreatedException: session not created: No matching capabilities found
Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:17:03'
System info: host: 'VM-83135Y0-RDS', ip: '10.232.38.151', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_144'
Driver info: driver.version: EdgeDriver
remote stacktrace: Backtrace:
Ordinal0 [0x00007FF7AE6E1BD2+3414994]
Ordinal0 [0x00007FF7AE5B75B2+2192818]
Ordinal0 [0x00007FF7AE45477F+739199]
Ordinal0 [0x00007FF7AE3DF5BF+259519]
Ordinal0 [0x00007FF7AE3DEEB4+257716]
Ordinal0 [0x00007FF7AE3E0601+263681]
Ordinal0 [0x00007FF7AE3DD68F+251535]
Ordinal0 [0x00007FF7AE3BA663+108131]
Ordinal0 [0x00007FF7AE3BB9CE+113102]
Ordinal0 [0x00007FF7AE5D24F1+2303217]
GetHandleVerifier [0x00007FF7AE85E564+1425828]
GetHandleVerifier [0x00007FF7AE85E32A+1425258]
GetHandleVerifier [0x00007FF7AE8762E1+1523489]
GetHandleVerifier [0x00007FF7AE85EB7B+1427387]
Ordinal0 [0x00007FF7AE5C8797+2262935]
Ordinal0 [0x00007FF7AE5D3ECA+2309834]
Ordinal0 [0x00007FF7AE5F20C8+2433224]
BaseThreadInitThunk [0x00007FFE43164034+20]
RtlUserThreadStart [0x00007FFE453A3691+33]
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at org.openqa.selenium.remote.W3CHandshakeResponse.lambda$errorHandler$0(W3CHandshakeResponse.java:62)
at org.openqa.selenium.remote.HandshakeResponse.lambda$getResponseFunction$0(HandshakeResponse.java:30)
at org.openqa.selenium.remote.ProtocolHandshake.lambda$createSession$0(ProtocolHandshake.java:126)
at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
at java.util.Spliterators$ArraySpliterator.tryAdvance(Spliterators.java:958)
at java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:126)
at java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:498)
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:485)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
at java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:152)
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:464)
at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:128)
at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:74)
at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:136)
at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:83)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:552)
at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:213)
at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:131)
at org.openqa.selenium.edge.EdgeDriver.<init>(EdgeDriver.java:141)
at org.openqa.selenium.edge.EdgeDriver.<init>(EdgeDriver.java:130)
【问题讨论】:
-
对我来说,我不得不将 selenium 包升级到 v4(我知道它仍处于 alpha 阶段)。然后对于 EdgeOptions,您将看到 UseChromium 属性 -
options.UseChromium = true。然后将其传递给新的 EdgeDriver -
options.UseChromium = true这在 java 中不可用。
标签: java selenium selenium-webdriver chromium webdriver-manager