Selenium Webdriver - Opera - 无法从渲染器接收消息

时间:2015-09-05 19:46:08

标签: java selenium selenium-webdriver

我正在尝试使用Opera(版本31)运行Java selenium测试。我正在使用最新版本的Selenium Webdriver(2.47.1)和最新版本的OperaChromiumDriver(0.2.2)。
我试图使用next方法来实例化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才会遇到这样的问题。
任何人都可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

尝试像这样实例化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都可以正常运行我的测试,无论如何。