C# 操作驱动器不工作
在MSTest类中使用Selenium Grid2和RemoteWebDriver,我很难让OperaDriver正常工作 我通过在CMD中运行以下命令来创建Selenium hub和Opera节点:C# 操作驱动器不工作,c#,opera,selenium-webdriver,selenium-grid,C#,Opera,Selenium Webdriver,Selenium Grid,在MSTest类中使用Selenium Grid2和RemoteWebDriver,我很难让OperaDriver正常工作 我通过在CMD中运行以下命令来创建Selenium hub和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
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#test类中创建一个新的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);
实际上,我得到了两个不同的例外-在Selenium中创建hub和node后的第一次,我得到了以下结果:
找不到支持捆绑启动器的平台,请设置
它是手动的
生成信息:版本:“2.30.0”,修订版:“dc1ef9c”,时间:“2013-02-19”
00:15:27'
系统信息:os.name:'Windows 8',os.arch:'x86',os.version:'6.2',
java.version:'1.7.0_15'
驱动程序信息:驱动程序。版本:OperaDriver
之后每次我都会出现以下错误:
无法初始化类
com.opera.core.systems.runner.launcher.operaluncherrunner
我使用的是Selenium-standalone-2.30.0
我使用的是Opera版本12.14,但在屏幕上看到兼容版本的列表后,降级到11.62,但错误保持不变
我尝试过初始化RemoteWebDriver,无论是否具有上述功能,每次都会得到相同的结果
有人知道这里的问题是什么,以及如何让RemoteWebDriver以这种方式与Opera一起工作吗
编辑:当我打开Opera
浏览器并查看帮助=>关于
时,Opera 12.14版
的平台是否显示为'Windows8'
,而11.62版
显示为WIN32“
?因为我在节点中将平台指定为WINDOWS
,并且RemoteWebDriver
。如果我尝试将WINDOWS 8指定为RemoteWebDriver的平台,则会在找不到匹配枚举的位置引发新异常:
org.openqa.selenium.WebDriverException:
java.lang.IllegalArgumentException:无枚举常量
org.openqa.selenium.Platform.windows8
Edit2:出于某种原因,CurrentPlatform
正在为我返回Vista
,即使我正在运行Windows8
Platform platform = Platform.CurrentPlatform;
我还注意到,检查“VISTA”时大写,而C#中的平台读作“VISTA”
这会导致问题吗?我在Java中运行时看到了这一点。在调试模式下,OperaLauncherRunner.java launcherNameForOS中可能会出现遗漏,因为它不符合Platform.getCurrent()返回的WIN8枚举 在Java中,我通过在创建新的OperaDriver之前将系统属性“os.name”设置为“windows”来伪造它。这迫使Platform.getCurrent返回opera启动器满意的XP 所以在java中,我使用了以下技巧:
System.setProperty("os.name","windows");
driver = new OperaDriver();
我在Java中运行时看到了这一点。在调试模式下,OperaLauncherRunner.java launcherNameForOS中可能会出现遗漏,因为它不符合Platform.getCurrent()返回的WIN8枚举 在Java中,我通过在创建新的OperaDriver之前将系统属性“os.name”设置为“windows”来伪造它。这迫使Platform.getCurrent返回opera启动器满意的XP 所以在java中,我使用了以下技巧:
System.setProperty("os.name","windows");
driver = new OperaDriver();
我也遇到了这个问题,多亏了eviltester的提示,我能够通过使用以下命令行启动selenium服务器来解决这个问题:
java -Dos.name=windows -jar selenium-server-standalone-2.32.0.jar
使用
-Dos.name=windows
相当于System.setProperty(“os.name”、“windows”)
并将允许您的C#selenium代码在Opera浏览器上工作。我也遇到了这个问题,多亏了EvileTester的提示,我能够通过使用以下命令行启动selenium服务器来解决这个问题:
java -Dos.name=windows -jar selenium-server-standalone-2.32.0.jar
使用
-Dos.name=windows
相当于System.setProperty(“os.name”、“windows”)
,将允许您的C#selenium代码在Opera浏览器中工作。您解决了问题吗?我也有同样的错误。还没有,我注意到自从我发布这个问题以来,Selenium standalone发布了一个更新版本,但还没有机会测试它是否已经解决。yetI使用最后一个问题进行了测试:(-2.31.0.您解决了问题吗?我有相同的错误。还没有,我注意到自从我发布此问题以来,Selenium standalone发布了一个更新版本,但还没有机会测试它是否已解决。yetI使用最后一个问题进行了测试:(-2.31.0.谢谢我对IE11有相同的错误,这解决了问题谢谢我对IE11有相同的错误,这解决了问题