我正在尝试使用 Opera(版本 31)运行 Java selenium 测试。我正在使用 Selenium Webdriver 的最新版本 (2.47.1) 和 OperaChromiumDriver 的最新版本(0.2.2).
我尝试使用下一个方法来实例化 Opera:
System.setProperty("webdriver.chrome.driver", "\\path\\to\\my\\operadriver.exe");
WebDriver driver = new ChromeDriver();
我尝试了使用 RemoteWebdriver 的另一种方法:
DesiredCapabilities capabilities = DesiredCapabilities.opera();
ChromeOptions options = new ChromeOptions();
options.setBinary("/path/to/opera");
capabilities.setCapability(ChromeOptions.CAPABILITY, options);
WebDriver driver = new RemoteWebDriver(new URL("http://127.0.0.1:9515"),capabilities);
(这些方法在这个问题的答案中有描述:How to use OperaChromiumDriver for opera version >12.X)
两种方法都有同样的问题。 Opera 打开,但随后因下一个异常而崩溃:
org.openqa.selenium.SessionNotCreatedException: session not created exception from disconnected: Unable to receive message from renderer
(Session info: Opera with embedded Chromium 0.1889.230)
(Driver info: OperaDriver=0.2.0 (ba47709ed9e35ce26dbd960fb5d75be104290d96),platform=Windows NT 6.1 x86_64
(WARNING: The server did not provide any stacktrace information)
Firefox、Chrome 和 IE 驱动程序正常工作,我仅在使用 OperaChromiumDriver 时遇到这样的问题。
谁能帮我解决这个问题吗?
最佳答案
尝试像这样实例化 OperaDriver
:
File operaFile = new File("\\path\\to\\my\\operadriver.exe");
System.setProperty("webdriver.opera.driver", operaFile.getAbsolutePath());
WebDriver driver = new OperaDriver();
在我的应用程序中,.getAbsolutePath()
有效,但仅在 .setProperty
中指定路径则无效。不知道为什么,因为两者的字符串输出是相同的。
不幸的是,我仍然无法在测试中使用 OperaDriver
,因为它在加载几个页面后变得无响应。此问题发生在运行不同版本 Windows 的 3 台不同计算机上,并且仅返回以下错误:
[SEVERE]: Timed out receiving message from renderer:
FirefoxDriver、ChromeDriver 和 InternetExplorerDriver 在我的测试中都运行良好,所以,无论如何。
关于java - Selenium Webdriver - Opera - 无法从渲染器接收消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32417041/