设置使用Selenium Webdriver自动化运行的RemoteWebDriver(在本例中为Browserstack)时遇到问题。
我的确切代码以前已经工作过,这表明这可能是版本控制问题,但是将我的硒版本更新到最新版本后,我仍然看到错误。硒版本3.141.0
代码如下(此代码直接取自Browserstack文档,稍作修改,与我的实际代码不同,但出于说明目的,它更简单,并且我的错误相同)
class Program
{
static void Main(string[] args)
{
IWebDriver driver;
var chromeOptions = new ChromeOptions();
chromeOptions.AddAdditionalCapability("browserstack.user", "xxxxxxxxxxxxxx");
chromeOptions.AddAdditionalCapability("browserstack.key", "xxxxxxxxxxxxxx");
chromeOptions.AddAdditionalCapability("browser", "Chrome");
chromeOptions.AddAdditionalCapability("browser_version", "62.0");
chromeOptions.AddAdditionalCapability("os", "Windows");
chromeOptions.AddAdditionalCapability("os_version", "10");
chromeOptions.AddAdditionalCapability("resolution", "1024x768");
driver = new RemoteWebDriver(new Uri("http://hub.browserstack.com/wd/hub/"), chromeOptions);
driver = new RemoteWebDriver(
new Uri("http://hub-cloud.browserstack.com/wd/hub/"), chromeOptions
);
driver.Navigate().GoToUrl("http://www.google.com");
Console.WriteLine(driver.Title);
IWebElement query = driver.FindElement(By.Name("q"));
query.SendKeys("Browserstack");
query.Submit();
Console.WriteLine(driver.Title);
driver.Quit();
}
}
不管使用哪种选项,每次在初始化RemoteWebDriver时都会出现相同的错误
driver = new RemoteWebDriver(new Uri("http://hub.browserstack.com/wd/hub/"), chromeOptions);
System.InvalidCastException: 'Unable to cast object of type 'System.String' to type 'System.Collections.Generic.Dictionary`2[System.String,System.Object]'.'
browserstack文档建议使用现在已过时的DesiredCapabilities类而不是DriverOptions,但是我已经尝试了两个相同的错误,并且查看RemoteWebDriver源代码,DriverOptions是各种构造函数中的有效参数。
我可能缺少一些东西,但认为值得一提,看看是否有人看到过类似的问题或任何建议。
预先感谢