2016-02-12 56 views
0

我有我的枢纽提供Firefox和Chrome浏览器。我可以成功申请一个或另一个。我想运行大多数的我的测试上两者是可用的,但不同时(这是应用程序的UI回归测试,而不是浏览器支持测试,所以我更愿意快速完成测试一个较小的反馈回路)。然而,当我从我的DesiredCapabilities删除BrowserName能力是这样的:如何创建可以找到Chrome或Firefox实例的DesiredCapabilities?

IWebDriver GetNewBrowser() { 
    var capabilities = new DesiredCapabilities { 
     Platform = new Platform(PlatformType.Windows) 
    }; 
    return new RemoteWebDriver(hubUri, capabilities); 
} 

然后硒枢纽抛出这个摇摇晃晃:

System.InvalidOperationException : The best matching driver provider 
    org.openqa.selenium.ie.InternetExplorerDriver can't create a new 
    driver instance for Capabilities [{platform=WINDOWS}] 
Build info: version: '2.48.2', revision: '41bccdd', time: '2015-10-09 

我不想最佳匹配的驱动程序提供商。我想任何匹配的驱动程序提供者。我如何设置?

回答

1

安装在电网可能是答案的定制CapabilityMatcher,看到this example(爪哇)。

您既可以覆盖DefaultCapabilityMatcher和补丁,允许请求browserName属性以匹配任何东西(默认行为是要求精确匹配)的方法 - 或者只是重写匹配逻辑到您的具体需求。

+0

感谢那些代码是有帮助的。它看起来像如果browserName能力为空应该匹配任何空字符串,'“'或'ANY'。我看到的是因为它找到的节点排序,但它接着以要求浏览器是IE浏览器。我不知道是否有决定采用何种浏览器确定节点相匹配的能力后,选择... –

+0

我猜机制还不够成熟,它允许浏览器的名称的替换,因为你没有设定一个步骤一个,IE仍然被认为是该平台的默认/备用浏览器让我有想...... –

+0

看起来我需要与集线器或者,也许[此驱动程序提供项目]注册一个新的自定义DriverProvider(HTTPS。: //github.com/betgenius/selenium-driver-provider)能帮助我。我会检查它在星期一。 –