OperaDriver不能正常工作

问题描述:

在MSTest类中使用Selenium Grid2和RemoteWebDriver,我很努力使OperaDriver工作。OperaDriver不能正常工作

我在CMD运行以下命令创建硒枢纽和Opera节点:

start java -jar selenium-server-standalone-2.30.0.jar -role hub 
start java -jar selenium-server-standalone-2.30.0.jar -role node -port 7001 -browser "browserName=opera,version=11.62,maxInstances=5,platform=WINDOWS" -hub http://localhost:4444/grid/register 

这工作得很好,我可以看到注册的节点,当我在浏览器中查看我的枢纽。

但我得到一个异常,每当我尝试创建我的C#测试类新WebDriver

DesiredCapabilities operaCapabilities = DesiredCapabilities.Opera(); 
operaCapabilities.SetCapability(CapabilityType.BrowserName, "opera"); 
operaCapabilities.SetCapability(CapabilityType.Platform, "WINDOWS"); 
operaCapabilities.SetCapability(CapabilityType.Version, "11.62"); 
operaCapabilities.SetCapability("opera.binary", "C:\\Program Files\\Opera\\opera.exe"); 
operaCapabilities.SetCapability("opera.port", 7001); 
RemoteWebDriver operaDriver = new RemoteWebDriver(operaCapabilities); 

其实我得到两个不同的异常 - 第一次创建硒的枢纽和节点,我得到后这样的:

Could not find a platform that supports bundled launchers, please set it manually

Build info: version: '2.30.0', revision: 'dc1ef9c', time: '2013-02-19 00:15:27'

System info: os.name: 'Windows 8', os.arch: 'x86', os.version: '6.2', java.version: '1.7.0_15'

Driver info: driver.version: OperaDriver

而且每次之后,我收到以下错误:

Could not initialize class com.opera.core.systems.runner.launcher.OperaLauncherRunner

我正在使用Selenium-standalone-2.30.0

我在使用Opera版本12.14,但降级到11.62后,我看到OperaDriver wiki page上的兼容版本列表,但错误保持不变。

我尝试了初始化RemoteWebDriver,但没有使用上面的功能,每次都得到相同的结果。

有没有人知道这里出现了什么问题,以及如何让远程Web驱动程序以这种方式使用Opera?

编辑:会不会是为Opera version 12.14平台全文'WINDOWS 8',当我打开浏览器Opera和查看Help => About版本11.62全文"WIN32"?正如我在节点中指定的平台为WINDOWSRemoteWebDriver。如果我试图指定的Windows 8为平台的RemoteWebDriver一个新的抛出异常的地方不能找到匹配的枚举:

org.openqa.selenium.WebDriverException: java.lang.IllegalArgumentException: No enum constant org.openqa.selenium.Platform.WINDOWS 8

EDIT2:由于某些原因CurrentPlatform正在返回Vista对我来说,即使我正在运行Windows8

Platform platform = Platform.CurrentPlatform; 

而且我也注意到,在大写的,而在C#平台上的OperaDriver source code检查“VISTA”读为Vista系统。

这是否会导致问题?

+0

您是否解决了该问题?我有同样的错误。 – gahcep 2013-03-05 20:35:28

+0

还没有,我已经注意到自发布这个问题以来,已经发布了更新版本的Selenium standalone,但是还没有机会去测试它是否已经解决了。 – DevDave 2013-03-05 23:23:04

+0

我做了最后一个测试: .0。 – gahcep 2013-03-06 02:41:45

我在Java中运行时看到了这个。在调试模式下,它看起来像OperaLauncherRunner.java中的一个可能的省略,launcherNameForOS不支持Platform.getCurrent()返回的WIN8枚举。

在Java中,我通过在创建新的OperaDriver之前将系统属性“os.name”设置为“windows”来填充它。这迫使Platform.getCurrent返回歌剧启动器满意的XP。

所以在java中我只是用这个技巧:

System.setProperty("os.name","windows"); 
driver = new OperaDriver(); 
+0

谢谢,我会给这个尝试和标记,如果我有幸运 – DevDave 2013-04-17 16:56:17

我已经从这个问题的痛苦,以及和感谢提示从eviltester我能够通过使用下面的命令行来解决问题启动硒服务器:

java -Dos.name=windows -jar selenium-server-standalone-2.32.0.jar 

采用-Dos.name=windowsSystem.setProperty("os.name", "windows")相媲美,并让你的C#代码硒为Opera浏览器的工作。

+0

谢谢我对IE11有同样的错误,这解决了问题 – arsenik 2014-07-18 16:26:08