OpenQA.Selenium.WebDriverException: «непредвиденная ошибка сервера».используя EdgeOptions - PullRequest
0 голосов
/ 25 августа 2018

Я пытаюсь запустить тест с использованием спецификации W3C Selenium WebDriver с C #.Это мой код, который я считаю правильным, основываясь на чтении документов W3C здесь .

    [Test]
    public void SimpleSelenium4Example()
    {

        //TODO please supply your Sauce Labs user name in an environment variable
        var sauceUserName = Environment.GetEnvironmentVariable("SAUCE_USERNAME", EnvironmentVariableTarget.User);
        //TODO please supply your own Sauce Labs access Key in an environment variable
        var sauceAccessKey = Environment.GetEnvironmentVariable("SAUCE_ACCESS_KEY", EnvironmentVariableTarget.User);

        var options = new EdgeOptions()
        {
            BrowserVersion = "latest",
            PlatformName = "Windows 10"
        };

        var sauceOptions = new JObject
        {
            ["username"] = sauceUserName,
            ["accessKey"] = sauceAccessKey,
            ["name"] = TestContext.CurrentContext.Test.Name
        };
        options.AddAdditionalCapability("sauce:options", sauceOptions.ToString());

        Driver = new RemoteWebDriver(new Uri("http://ondemand.saucelabs.com:80/wd/hub"), options.ToCapabilities(),
            TimeSpan.FromSeconds(600));
        Driver.Navigate().GoToUrl("https://www.google.com");
        Assert.Pass();
    }

Я получаю эту ошибку OpenQA.Selenium.WebDriverException: 'Неожиданная ошибка сервера.' при создании экземпляра RemoteWebDriver.

Не уверен, в чем проблема.Любая помощь приветствуется.

1 Ответ

0 голосов
/ 29 августа 2018

.NET-привязки сериализуют объекты соответствующим образом;совсем не нужно пытаться использовать API-интерфейс Json.NET (поскольку вы используете JObject подразумеваете, что это так), а сериализация объекта JSON (с использованием ToString()) до передачи по проводам, скорее всего, будет неудачной.

[Test]
public void SimpleSelenium4Example()
{
    //TODO please supply your Sauce Labs user name in an environment variable
    var sauceUserName = Environment.GetEnvironmentVariable("SAUCE_USERNAME", EnvironmentVariableTarget.User);
    //TODO please supply your own Sauce Labs access Key in an environment variable
    var sauceAccessKey = Environment.GetEnvironmentVariable("SAUCE_ACCESS_KEY", EnvironmentVariableTarget.User);

    var options = new EdgeOptions()
    {
        BrowserVersion = "latest",
        PlatformName = "Windows 10"
    };

    var sauceOptions = new Dictionary<string, object>();
    sauceOptions["username"] = sauceUserName;
    sauceOptions["accessKey"] = sauceAccessKey;
    sauceOptions["name"] = TestContext.CurrentContext.Test.Name;

    options.AddAdditionalCapability("sauce:options", sauceOptions);

    Driver = new RemoteWebDriver(new Uri("http://ondemand.saucelabs.com:80/wd/hub"), options.ToCapabilities(),
        TimeSpan.FromSeconds(600));
    Driver.Navigate().GoToUrl("https://www.google.com");
    Assert.Pass();
}
...