- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我有两个简单的测试,它们将 RemoteWebDriver
与 ChromeOptions
和 EdgeOptions
结合使用。这两个测试都使用通用代码来设置功能,包括 browserstack.user
和 browserstack.key
功能。
因为我正在使用 DriverOptions
(而不是 DesiredCapabilities
),所以我使用了 AddAdditionalCapability(...)
将这些功能添加到驱动程序.
Edge 测试正常,但 Chrome 测试甚至在测试开始之前就失败了;
OpenQA.Selenium.WebDriverException: Unexpected error. Authorization required
在我将我的 Selenium 驱动程序升级到 v3.14(其中 DesiredCapabalities
已被弃用)之前,这些测试之前使用 DesiredCapabalities
。
更新
我已经降级到 Selenium.WebDriver v3.4。
通过(EdgeOptions)和失败(使用 ChromeOptions)的代码示例:
[TestClass]
public class Simple_GridTest_Chrome
{
private static IWebDriver driver;
private string _bsUsername = "<username>";
private string _bsAccessKey = "<myaccesskey>";
private string _bsProjectName = "TestProject";
private string _bsBuildName = "Build-0.0.1";
private void SetOptions(bool useEdge = false)
{
DriverOptions options;
if (useEdge)
{
options = new EdgeOptions(); // this works OK
} else
{
options = new ChromeOptions(); // this fails with OpenQA.Selenium.WebDriverException: Unexpected error. Authorization required
}
// the account that is running the test
options.AddAdditionalCapability("browserstack.user", _bsUsername);
options.AddAdditionalCapability("browserstack.key", _bsAccessKey);
options.AddAdditionalCapability("project", _bsProjectName);
options.AddAdditionalCapability("build", _bsBuildName);
// gather additional data during the test run (screen shots etc)
options.AddAdditionalCapability("browserstack.debug", "true");
driver = new RemoteWebDriver(
new Uri("https://hub-cloud.browserstack.com/wd/hub/"), options
);
//driver = new RemoteWebDriver(
// new Uri($"https://{_bsUsername}:{_bsAccessKey}@hub-cloud.browserstack.com/wd/hub/"), options
//);
}
[ClassInitialize()]
public static void MyClassInitialise(TestContext context)
{
}
[TestMethod]
[TestCategory("grid.BrowserStack.Google")]
public void NavigateToGoogle_Windows7_Chrome()
{
SetOptions(false); // use Chrome
GoogleTest(driver);
}
[TestMethod]
[TestCategory("grid.BrowserStack.Google")]
public void NavigateToGoogle_Windows10_Edge()
{
SetOptions(true); // use Edge
GoogleTest(driver);
}
private void GoogleTest(IWebDriver driver)
{
driver.Navigate().GoToUrl("https://www.google.com/?q=test");
Console.WriteLine(driver.Title);
driver.WaitForWebElement(By.XPath("//*[@name=\"btnK\"]")).Click();
Console.WriteLine(driver.Title);
}
}
我安装了以下软件包:
<packages>
<package id="Selenium.Firefox.WebDriver" version="0.21.0" targetFramework="net45" />
<package id="Selenium.Support" version="3.4.0" targetFramework="net45" />
<package id="Selenium.WebDriver" version="3.4.0" targetFramework="net45" />
<package id="Selenium.WebDriver.ChromeDriver" version="2.41.0" targetFramework="net45" />
<package id="Selenium.WebDriver.IEDriver" version="3.14.0" targetFramework="net45" />
</packages>
最佳答案
这似乎是一个特定于 selenium 语言绑定(bind)如何生成有效负载以及 browserstack 在其末端如何解析它的问题。
根据您分享的错误消息,很可能在解析请求负载时,browserstack 无法找到您的用户名和访问 key
您可以按照下面提到的步骤进行调试:
更改行 driver = new RemoteWebDriver(new Uri("https://hub-cloud.browserstack.com/wd/hub/"), options);
到 driver = new RemoteWebDriver(
.您不需要在本地启动 selenium-standalone jar。
new Uri("http://localhost:4444/wd/hub/"), options
);
启动一个代理来读取 localhost:4444 上的流量。 (如果需要,您可以使用基于节点的实现。这是一个这样的实现:https://gist.github.com/hanikhan/f817bd64b063129cb78dc7ed0b66fdb7)
观察您正在使用的 selenium 客户端绑定(bind)生成的请求负载(您提到的 v3.14)。例如,我的基于 java 的 selenium 客户端在仅传递浏览器时生成它是 desiredcapabitlies {"desiredCapabilities":{"browserName":"Chrome"},"capabilities":{"firstMatch":[{"browserName":"Chrome"}]}}
现在将您的 selenium 绑定(bind)降级(到它可以工作的版本)并观察它生成的有效载荷。
检查客户端绑定(bind)是否使用严格检查,因为某些必需的功能在您端被丢弃。
如果这是真的,那么您将需要执行以下操作之一:
关于c# - BrowserStack:意外错误。需要授权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52207093/
当尝试在 BrowserStack 上执行 Selenium 测试时,功能“browserstack.local”为“true”,我收到以下异常- org.openqa.selenium.WebDri
我正在使用 browserstack 来测试一些设备,比如 IE。但是我需要设置本地测试,以便我可以测试我的网站 localhost:3000 我已经在 Chrome 中登录到 browserstac
我的测试应用程序是基于 ReactNative 的 native 应用程序(Android 和 iOS) 为了填充数据,存在对“Metro Bundler”的依赖。 尝试访问 Browserstack
我需要在 4 个不同的浏览器中并行运行所有测试用例。在我的 chrome 驱动程序上它工作正常。 当我尝试作为本地测试并行运行时出现问题。 我收到以下错误com.browserstack.local.
我正在使用 Browserstack 在 iPad 上测试一些网站。我只是似乎不知道开发人员工具在该模拟器中的位置。某处不应该有Firebug Lite吗?有人可以向我指出开发工具吗? 最佳答案 正如
我有如下一系列函数,它们通过模拟登录的 Web 应用程序进行线程,然后运行该 Web 应用程序的许多功能。我通过 browserstack 使用 JS、nightwatch.js 和 selenium
我尝试将我们的 cicleCI 与 browserstack 连接在一起,并使用 Browserstack 服务运行我们的 integration_test 和单元测试,不仅使用 PhantomJS,
Intern.js 是一个很棒的测试运行器,但它似乎只适用于 SauceLabs。我的公司已经在使用 BrowserStack 并且对它非常满意。我想知道是否有人能够将 Intern.js 与 Bro
我正在使用摩卡和 Chai 。我的 e2e 在浏览器堆栈上运行并很好地记录(视频和所有内容),但浏览器堆栈始终将 session 标记为已完成,并且当我知道某些规范失败时不会出现错误。 我在这里尝试过
我正在关注 browserstack 的 documentation关于使用自动化并且当前出现错误并且对 URI 有点困惑。 我的代码如下所示: using System; using OpenQA.
在 Intern 框架中,当我使用 functionalSuites 配置字段指定多个测试并使用 BrowserStack 隧道运行测试时,在 BrowserStack 中仅创建一个 session
我为我的 selenium 测试创建了一个基于 ExpressJS 和 NodeJS 的自定义报告工具。我将有关已执行测试的所有信息存储在自己的数据库中(测试运行、测试用例、测试步骤等)。 现在,我想
我有两个简单的测试,它们将 RemoteWebDriver 与 ChromeOptions 和 EdgeOptions 结合使用。这两个测试都使用通用代码来设置功能,包括 browserstack.u
来自 https://www.browserstack.com/automate/python 的脚本 from selenium import webdriver from selenium.web
这对我来说是新主题,我正在尝试将 BrowserStack 与 Azure DevOps 管道集成。 我已遵循 Browserstack 文档中提到的所有步骤 https://www.browsers
这对我来说是新主题,我正在尝试将 BrowserStack 与 Azure DevOps 管道集成。 我已遵循 Browserstack 文档中提到的所有步骤 https://www.browsers
尝试进行e2e测试来测试我的服务器及其TraviCI上的UI。但是,我无法提出必要的配置以运行所有组件并访问BrowserStack上的seleniumServer。 我可以开始我的 session
因此,我一直在尝试使用 Browserstack 和 Intern.js 测试 input type="file",但我一直收到“未找到文件”错误,因为 Browserstack 在我的计算机中搜索该
我一直在寻找方法,专门使用 BrowserStack 在 Node.js 中创建合理的可扩展测试结构。 请在此处查看源代码: https://gist.github.com/Palgie/108860
我正在尝试使用 browserstack-local 集成和本地运行器脚本在我机器上的 VM 上运行 Nightwatch 测试。当我没有在 browserstack.conf.js 中指定我的全局变
我是一名优秀的程序员,十分优秀!