Browserstack Selenium Automation HUB

Я следую документации браузерного стека по использованию автоматизации и в настоящее время получаю сообщение об ошибке, и я немного сбит с толку URI.

Мой код выглядит следующим образом:

using System;
using OpenQA.Selenium;
using OpenQA.Selenium.Remote;

namespace SeleniumTest {
  class Program {
    static void Main(string[] args) {
      IWebDriver driver;
      DesiredCapabilities capability = DesiredCapabilities.Firefox();
      capability.SetCapability("browserstack.user", "USERNAME");
      capability.SetCapability("browserstack.key", "ACCESS_KEY");

      driver = new RemoteWebDriver(
        new Uri("http://hub.browserstack.com/wd/hub/"), capability
      );
      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();
    }
  }
}

Меня смущает uri http://hub.browserstack.com/wd/hub/

Я не понимаю, что это за URI?

зачем он нужен?

почему эта строка кода http://hub.browserstack.com/wd/hub/ выдает такие ошибки, как

«Вы должны пройти аутентификацию, чтобы получить доступ к этому URL»

Код состояния = 403

Точная ошибка ниже

Исключение типа «OpenQA.Selenium.WebDriverException» возникло в WebDriver.dll, но не было обработано в пользовательском коде.

Дополнительная информация: Непредвиденная ошибка.

McAfee Web Gateway — уведомление — требуется аутентификация

Authentication Required
<td class="contentData">

  You must be authenticated to access this URL.

</td>
urlprotocol = "http"; statuscode=403; if(statuscode==401 && urlprotocol == "ftp"){
  document.write("<form name=\"ftpform\" method=\"get\" action=\"\">");

  document.write("<table class=\"contentData\">");

  document.write("<tr><td class=\"contentData\" colspan=2>Please enter your credentials in the form below and click \"Access FTP\"
button if your browser doesn't present authentication prompt for FTP sites.");
  document.write("<tr><td class=\"contentData\">Username:</td><td><input type=\"text\"
id=\"ftpUsername\" name=\"ftpUsername\" size=40 />");
  document.write("<tr><td class=\"contentData\">Password:</td><td><input type=\"password\"
id=\"ftpPassword\" name=\"ftpPassword\" size=40 />");
  document.write("<tr><td class=\"contentData\" colspan=2 align=center><input type=\"button\" onclick=\"redirectToFTP();\"
value=\"Access FTP\" />");
  document.write("</table>");

  document.write("</form>");
} function redirectToFTP(){
  var username=unescape(document.getElementById("ftpUsername").value);

  var password=unescape(document.getElementById("ftpPassword").value);

  location.href = "ftp://"+username+":"+password+"@hub.browserstack.com:80/wd/hub/session"
}
<td class="infoData">

  <b>URL: </b><script type="text/javascript">break_line("http://hub.browserstack.com/wd/hub/session");</script><br />

</td>

Proxy: XXXXXXX

Rule: Authenticate: NTLM


Я только что заменил прокси на XXXXXX

Я также использую реальное полностью лицензированное имя пользователя и пароль учетной записи Browserstack, но для целей этого вопроса есть примеры. «USERNAME» для имени пользователя и «ACCESS_KEY» для пароля.

любой отзыв очень ценится, спасибо.


person arjwolf    schedule 27.04.2016    source источник
comment
Вам необходимо установить учетные данные в URL-адресе: browserstack.com/automate/java   -  person Florent B.    schedule 27.04.2016


Ответы (3)


Ваш код C# работает нормально, если вы просто замените USERNAME и ACCESS_KEY действительными учетными данными стека браузера. Если вы по-прежнему получаете ошибку 403, дважды проверьте свои учетные данные.

Через стек браузера вы можете запускать свои тесты удаленно на машине, управляемой стеком браузера, в отличие от локального запуска теста на вашем собственном компьютере. URL-адрес http://hub.browserstack.com/wd/hub/ — это ваша точка входа в стек браузеров, с помощью которого они могут проверить, кто запускает тесты, и, следовательно, вы указываете имя пользователя и ключ доступа.

person sowa    schedule 27.04.2016

URL-адрес http://hub.browserstack.com/wd/hub/ соответствует концентратору Selenium BrowserStack, и он необходим для запуска тестов в BrowserStack. Чтобы запустить автоматизированный (Selenium) тест в BrowserStack, вам нужно указать свои тесты на этот Selenium Hub вместе с вашим именем пользователя и ключом Automate. Глядя на общий фрагмент кода, я вижу, что вы правильно передаете учетные данные BrowserStack.

Проверяя общую трассировку стека ошибок, кажется, что вы находитесь за прокси-сервером NTLM. Вам нужно будет найти способ передать данные прокси-сервера NTLM с вашими запросами Selenium на C#, чтобы запустить ваши тесты в BrowserStack. Например, если вы находитесь за прокси-сервером Basic HTTP, вы можете настроить свои тесты, добавив следующие строки в свой файл конфигурации:

<system.net>
 <defaultProxy useDefaultCredentials="true">
  <proxy usesystemdefault="True"/>
 </defaultProxy>
</system.net>

Рекомендую написать на [email protected], если у вас есть дополнительные вопросы по этому поводу.

person Umang Sardesai    schedule 27.04.2016

Я не мог определить место, но, возможно, вы можете получить представление о приведенном ниже коде, который я использую для его подключения.

        DesiredCapabilities capability = DesiredCapabilities.Chrome();
        capability.SetCapability("browserstack.user", "userName");
        capability.SetCapability("browserstack.key", "password");
        capability.SetCapability("browserstack.debug", true);
        driver = new RemoteWebDriver(new Uri("http://hub.browserstack.com/wd/hub/"), capability);
person Pankaj Dubey    schedule 29.04.2016