【问题标题】:Browserstack Selenium Automation HUBBrowserstack Selenium 自动化集线器
【发布时间】:2016-04-27 16:08:41
【问题描述】:

我正在关注 browserstack 的 documentation 使用自动化,目前遇到错误,并且对 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 - 通知 - 身份验证 必填

验证 必需的
<td class="contentData">

  You must be authenticated to access this URL.

</td>
urlprotocol = "http"; 状态码=403; 如果(状态码==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\"
如果您的浏览器没有显示 FTP 身份验证提示,则按钮 网站。”);
  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=\"访问 FTP\" />");
  document.write("</table>");

  document.write("</form>");
} 函数重定向到FTP(){
  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>

代理:XXXXXXX

规则:验证:NTLM


我刚刚将代理替换为 XXXXXX

我也在使用真正获得完全许可的 Browserstack 帐户用户名/密码,但出于这个问题的目的,这里有示例。 “USERNAME”作为用户名,“ACCESS_KEY”作为密码。

非常感谢任何反馈,谢谢。

【问题讨论】:

标签: selenium testing automation browserstack


【解决方案1】:

如果您只需将USERNAMEACCESS_KEY 替换为有效的浏览器堆栈凭据,您的C# 代码就可以正常运行。如果您仍然收到 403 错误,请仔细检查您的凭据。

通过 browserstack,您可以在由 browserstack 管理的机器上远程运行测试,而不是在您自己的机器上本地运行测试。 url http://hub.browserstack.com/wd/hub/ 是浏览器堆栈的入口点,他们可以通过它验证谁在运行测试,因此您提供用户名和 access_key。

【讨论】:

    【解决方案2】:

    URL http://hub.browserstack.com/wd/hub/ 对应于 BrowserStack 的 Selenium hub,它是在 BrowserStack 上运行测试所必需的。要在 BrowserStack 上运行自动化 (Selenium) 测试,您需要将您的测试与您的用户名和自动化密钥一起指向这个 Selenium Hub。查看共享的代码 sn-p,我看到您正确传递了 BrowserStack 凭据。

    检查错误堆栈跟踪共享,您似乎在 NTLM 代理后面。您必须想办法在 C# 中通过 Selenium 请求传递 NTLM 代理详细信息,以便在 BrowserStack 上运行测试。例如,如果您使用 Basic HTTP 代理,您可以通过在配置文件中添加以下行来配置您的测试:

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

    如果您对此有更多疑问,建议您发送邮件至 support@browserstack.com。

    【讨论】:

      【解决方案3】:

      我不知道该位置,但您可能可以通过下面提到的代码来了解它,我用它来连接它

              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);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-01-02
        • 2021-12-22
        • 2019-06-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多