我的中心上有Firefox和Chrome浏览器。我可以成功请求一个或另一个。我想在可用的任何一种上运行大部分测试,但不能同时运行两者(这是针对应用程序 UI 回归测试,而不是浏览器支持测试,所以我更愿意快速完成测试以获得较小的反馈循环(。但是,当我像这样从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
我不想要最匹配的驱动程序提供程序。我想要任何匹配的驱动程序提供程序。如何设置?
网格上安装的自定义CapabilityMatcher
可能是答案,请参阅此示例 (Java(。
您可以重写 DefaultCapabilityMatcher 并修补该方法以允许请求的 browserName
属性匹配任何内容(默认行为是要求完全匹配( - 或者只是重写匹配逻辑以满足您的精确需求。