0

我一直在重构我的测试框架以不使用 DesiredCapabilities,因为它们现在已经过时并且没有办法摆脱警告。将 Options 传递给 BrowserStack 时遇到问题,除非我将它们作为功能传递,否则未设置 OS 和 OSVersion 选项。该测试仍然在 BS 上运行,但它是在一个看似随机的 OSVersion 上。

有没有人找到一种在不触发弃用警告的情况下将这些 DesiredCapabilities 作为选项传递的方法?

我发现了一些引用对 capabilities.ChromeOptions 进行修改的来源,但这些线程对我来说没有意义,也没有提供有效的解决方案。几乎所有搜索的内容都只是将它们与调用驱动程序时输入 chromeoptions 的所需功能一起构建,但这仍然会引发弃用警告。感谢任何帮助。

编辑: BS建议这样做,我已经尝试过并且正在得到报告的结果..似乎操作系统和osversion必须通过desiredcapabilities传递:

DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("browserName", "Chrome");
capabilities.setCapability("browserVersion", "76.0");
Dictionary<string, object> browserstackOptions = new Dictionary<string, object>();
browserstackOptions.Add("os", "Windows");
browserstackOptions.Add("osVersion", "10");
browserstackOptions.Add("resolution", "1920x1080");
browserstackOptions.Add("local", "false");
browserstackOptions.Add("seleniumVersion", "3.5.2");
browserstackOptions.Add("userName", "USERNAME");
browserstackOptions.Add("accessKey", "ACCESS_KEY");
capabilities.setCapability("bstack:options", browserstackOptions);

它获得了正确的浏览器和浏览器版本,但如果它们没有作为 DC 传递,则无法选择所需的 os 和 osVersion。

4

1 回答 1

1

您可以使用浏览器特定选项传递操作系统和操作系统版本功能,如下所示 -

ChromeOptions options = new ChromeOptions();

options.AddAdditionalCapability("osVersion", "Sierra", true);
options.AddAdditionalCapability("os", "OS X", true);
options.AddAdditionalCapability("browser_version", "67", true);

driver = new RemoteWebDriver(new Uri("http://<your_username>:<your_access_key>@hub-cloud.browserstack.com/wd/hub/"),options.ToCapabilities());

有关更多示例,您可以参考此处提供的示例 - https://github.com/abhi291096/CSharp314

请查看他们的功能生成器以获取更多详细信息。

于 2019-08-15T21:10:11.567 回答