此故障单与故障单1578 for Selenium有关,但问题出在Chrome上,而不是该故障单中的Firefox。
使用本地驱动程序时,安装和配置扩展程序。使用RemoteWebDriver的C#实现执行相同操作不会。使用Chrome进行了测试。
在我的测试用例中,远程执行是针对SauceLabs完成的。联系他们的支持,他们验证通过RemoteWebDriver安装扩展在JAVA实现中工作,但未能使用C#实现。
引用他们的支持票:
"我自己尝试了这个问题,而且我自己也遇到了问题,所以这可能是C#Selenium与RemoteWebDriver绑定的一个缺陷。"
我的代码:
(\s|$)
答案 0 :(得分:1)
这是.NET绑定用户常犯的错误。您几乎不应该直接在代码中使用DesiredCapabilities
类。相反,您应该在实例化驱动程序之前使用ChromeOptions
类来设置所有选项,并使用.ToCapabilitied()
方法将其转换为可以使用的ICapabilities
对象使用RemoteWebDriver
构造函数。在您的具体情况下,这将是这样的:
private IWebDriver GetSauceLabsDriver()
{
var outPutDirectory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
ChromeOptions options = new ChromeOptions();
options.AddExtensions(outPutDirectory + @"\3.1.3_0.
// Add capabilities that belong at the top
// level of the capabilities object as opposed
// to part of the chromeOptions capability. Note
// that setting the browser name is entirely
// redundant and thus is not done. Likewise,
// deviceName and deviceOrientation are
options.AddAdditionalCapability(CapabilityType.Version, "53.0", true);
options.AddAdditionalCapability(CapabilityType.Platform, "Windows 10", true);
options.AddAdditionalCapability("username", "kin", true);
options.AddAdditionalCapability("accessKey", "9cd6-438e-a9635b70953d", true);
options.AddAdditionalCapability("name", TestContext.CurrentContext.Test.Name, true);
return new RemoteWebDriver(new Uri("http://ondemand.saucelabs.com:80/wd/hub"), options.ToCapabilities(),
TimeSpan.FromSeconds(600));
}