我的集线器上有Firefox和Chrome浏览器。我可以成功申请其中一个。我想在可用的任何一个上运行我的大多数测试,但不是两个(这是应用程序UI回归测试,而不是浏览器支持测试,所以我更喜欢快速完成测试以获得更小的反馈循环)。但是,当我从我的DesiredCapabilities
中删除BrowserName功能时,这样:
IWebDriver GetNewBrowser() {
var capabilities = new DesiredCapabilities {
Platform = new Platform(PlatformType.Windows)
};
return new RemoteWebDriver(hubUri, capabilities);
}
然后Selenium Hub不稳定地抛出了这个:
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
我不想要最匹配的驱动程序提供商。我想要任何匹配的驱动程序提供程序。我该如何设置?
答案 0 :(得分:1)
网格上安装的自定义CapabilityMatcher
可能就是答案,请参阅this example(Java)。
您可以覆盖DefaultCapabilityMatcher并修补方法以允许请求的browserName
属性匹配任何内容(默认行为要求完全匹配) - 或者只是将匹配逻辑重写为您的精确匹配需要。