主机:带有VS 2017,Selenium(.NET)和SpecFlow +的Windows 10
我在网络上安装了带有Safari v12的Mojave MacOS,需要在其上运行测试脚本。 我正在使用RemoteWebDriver在其上运行Selenium C#脚本,但是它们失败了,因为v12使用了最新的W3C协议。 可以使用“ --legacy”开关启动SafariDriver。 SafariDriverService具有“ UseLegacyProtocol”,但无法在RemoteWebDriver中传递(下面的示例)。 有没有一种方法可以通过以下方式激活开关: a)通过RemoteWebDriver传递它吗? b)将其与选项合并为功能并通过RemoteWebDriver传递? c)在json文件中配置开关以便与Selenium Grid v3一起使用?
这是与C#代码一起使用的。
代码示例我已经拥有:
var sOptions = new SafariOptions();
sOptions.Proxy = null;
var sService = SafariDriverService.CreateDefaultService();
sService.Port = xxxx;
sService.UseLegacyProtocol = true;
Browser = new SafariDriver(sService, sOptions,
TimeSpan.FromSeconds(PageTimeout));
var rOptions = new SafariOptions();
Browser = new RemoteWebDriver(new Uri("http://xx.xxx.xx.xx:xxxx/wd/hub"), rOptions);
谢谢
答案 0 :(得分:0)
您可以使用以下代码将功能合并到SafariOptions中:
SafariOptions options = new SafariOptions();
options.merge(capabilities);
但是仍然存在一个错误,Safaridriver无法处理Proxy,仍然存在积压的待办事项。
答案 1 :(得分:0)
Safari / safaridriver的发行版本不再支持传统协议,因此我认为可以解决此问题。