需要授权的RemoteSessionSettings Browserstack

问题描述 投票:0回答:1

我将DesiredCapabilities替换为RemoteSessionSettings,但似乎BrowserStack无法验证我的身份。

如何仍然使用RemoteSessionSettings,以便仍可以在BrowserStack中执行并行测试?

下面是我的示例代码:

var capSettings = new RemoteSessionSettings();
capSettings.AddMetadataSetting("browserstack.user", ConfigurationManager.AppSettings.Get("user"));
capSettings.AddMetadataSetting("browserstack.key", ConfigurationManager.AppSettings.Get("key"));

capSettings.AddMetadataSetting("browser", "chrome");
capSettings.AddMetadataSetting("os", "Windows");
capSettings.AddMetadataSetting("os_version", "10");
capSettings.AddMetadataSetting("name", TestName);

driver = new RemoteWebDriver(new Uri("http://" + ConfigurationManager.AppSettings.Get("server") + "/wd/hub/"), capSettings);

非常感谢您的帮助!

c# selenium selenium-webdriver browserstack
1个回答
0
投票

使用AddMetadataSetting方法会将属性放在新会话命令有效负载的错误部分,以使BrowserStack正常工作。您想要的是以下内容:

Dictionary<string, object> browserStackOptions = new Dictionary<string, object>();
browserStackOptions.Add("userName", ConfigurationManager.AppSettings.Get("user"));
browserStackOptions.Add("accessKey", ConfigurationManager.AppSettings.Get("key"));

browserStackOptions.Add("os", "Windows");
browserStackOptions.Add("osVersion", "10");
browserStackOptions.Add("sessionName", TestName);

ChromeOptions options = new ChromeOptions();

// N.B., the below line of code is specific to
// the 4.0 alpha of the .NET bindings. To
// use a 3.x version, use:
// options.AddAdditionalCapability("bstack:options", browserStackOptions, true);
options.AddAdditionalOption("bstack:options", browserStackOptions);

IWebDriver driver = new RemoteWebDriver(new Uri("http://hub-cloud.browserstack.com/wd/hub/"), options);

RemoteSessionSettings类在要添加的功能不在主要功能对象之外时,或者在尝试传递多个特定于浏览器的Options类以潜在地与该会话的多个浏览器中的任何一个匹配时,将很有用。

© www.soinside.com 2019 - 2024. All rights reserved.