我想在Opera上运行我的Selenium WebDriver测试,但是当我在Selenium HQ和GitHub页面上查看Opera驱动程序时,它说:
Opera Driver需要Opera 12.x及更早版本
请注意,OperaDriver仅在12.16之前与基于Presto的Operas兼容.不支持基于闪烁的歌剧(15及以上).
Opera现在达到了22.0版本,远远超出了12的最大支持版本.所以,我的问题是: -
我正在尝试将OperaDriver for Java(版本0.11)集成到我的测试套件中.这是代码片段:
DesiredCapabilities operaCapabilities = DesiredCapabilities.opera();
operaCapabilities.setCapability("opera.host", "127.0.0.1");
operaCapabilities.setCapability("opera.port", 7001);
operaCapabilities.setCapability("opera.profile", "");
webDriver = new OperaDriver(operaCapabilities);
Run Code Online (Sandbox Code Playgroud)
上面的代码片段无法返回带有SocketTimeoutException的webdriver引用Timeout waiting for launcher to connect on port 29392.我可以看到浏览器(opera版本11.62)在加载快速拨号选项卡的情况下启动,并且启动器也在执行,但OperaDriver似乎无法连接.
我看到的例外是:
com.opera.core.systems.runner.OperaRunnerException: Timeout waiting for launcher to connect on port 29392
at com.opera.core.systems.runner.launcher.OperaLauncherRunner.<init>(OperaLauncherRunner.java:159)
at com.opera.core.systems.OperaDriver.<init>(OperaDriver.java:322)
at com.opera.core.systems.OperaDriver.<init>(OperaDriver.java:224)
at com.test.TestMain.main(TestMain.java:31)
Caused by: java.net.SocketTimeoutException: Accept timed out
at java.net.PlainSocketImpl.socketAccept(Native Method)
at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:408)
at java.net.ServerSocket.implAccept(ServerSocket.java:462)
at java.net.ServerSocket.accept(ServerSocket.java:430)
at com.opera.core.systems.runner.launcher.OperaLauncherRunner.<init>
(OperaLauncherRunner.java:140)
... 3 more
Run Code Online (Sandbox Code Playgroud)
我已经为"opera.port"和7001尝试了-1,但是功能设置似乎被忽略了,因为它每次尝试连接一个随机端口.我的防火墙也暂时关闭了.