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"
?正如我在节点中指定的平台为WINDOWS
和RemoteWebDriver
。如果我试图指定的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系统。
这是否会导致问题?
我在Java中运行时看到了这个。在调试模式下,它看起来像OperaLauncherRunner.java中的一个可能的省略,launcherNameForOS不支持Platform.getCurrent()返回的WIN8枚举。
在Java中,我通过在创建新的OperaDriver之前将系统属性“os.name”设置为“windows”来填充它。这迫使Platform.getCurrent返回歌剧启动器满意的XP。
所以在java中我只是用这个技巧:
System.setProperty("os.name","windows");
driver = new OperaDriver();
谢谢,我会给这个尝试和标记,如果我有幸运 – DevDave 2013-04-17 16:56:17
我已经从这个问题的痛苦,以及和感谢提示从eviltester我能够通过使用下面的命令行来解决问题启动硒服务器:
java -Dos.name=windows -jar selenium-server-standalone-2.32.0.jar
采用-Dos.name=windows
是System.setProperty("os.name", "windows")
相媲美,并让你的C#代码硒为Opera浏览器的工作。
谢谢我对IE11有同样的错误,这解决了问题 – arsenik 2014-07-18 16:26:08
您是否解决了该问题?我有同样的错误。 – gahcep 2013-03-05 20:35:28
还没有,我已经注意到自发布这个问题以来,已经发布了更新版本的Selenium standalone,但是还没有机会去测试它是否已经解决了。 – DevDave 2013-03-05 23:23:04
我做了最后一个测试: .0。 – gahcep 2013-03-06 02:41:45