我一直在重构我的测试框架以不使用 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。