我正在尝试使用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才会遇到这样的问题。
任何人都可以帮我解决这个问题吗?
答案 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都可以正常运行我的测试,无论如何。