BrowserStack 错误- [browserstack.local] 设置为 true 但未连接通过 BrowserStack 的本地测试

BrowserStack Error- [browserstack.local] is set to true but local testing through BrowserStack is not connected

尝试在 BrowserStack 上执行具有 'browserstack.local' 作为 'true' 能力的 Selenium 测试时,我收到以下异常 -

org.openqa.selenium.WebDriverException: [browserstack.local] is set to true but local testing through BrowserStack is not connected.

如果我删除功能 'browserstack.local' 则测试会执行,但是,它不会访问专用网络应用程序。我尝试搜索有关此异常的其他在线资源,但是找不到任何详细信息。

URL URLObj = new URL("https://" + USERNAME + ":" + KEY + "@hub-cloud.browserstack.com/wd/hub");

DesiredCapabilities caps = new DesiredCapabilities();
caps.setCapability("device", "iPhone 8 Plus");
caps.setCapability("real_mobile", "true");
caps.setCapability("browserstack.local", "true");

AppiumDriver webDriver = new IOSDriver(URLObj, caps);

例外的结果是测试应该运行并且专用网络应用程序应该可以访问。另外,不应抛出上述异常。

除了您正在做的事情之外,Browserstack Local 测试还涉及另一个步骤。你可以检查一下here。 基本上,有一个二进制(可执行)文件,您需要 运行 在您的系统上(将在其上执行测试),它将通过您的网络将流量路由到 Browserstack 的网络。这将解析 Browserstack 网络中的所有私有 URL。

BrowserStack 提供本地测试功能来测试不可公开访问的内部网站。 通过将功能 'browserstack.local' 设置为值 'true' 并启动 BrowserStackLocal 二进制文件来启用本地测试功能。

你启动了 BrowserStackLocal 二进制文件了吗?您可以通过在命令提示符下执行以下命令来启动二进制文件-

BrowserStackLocal.exe --key ACCESS_KEY

错误 -“[browserstack.local] 设置为 true 但未连接通过 BrowserStack 的本地测试。”通常在 BrowserStackLocal 二进制文件不是 运行.

时发生

我可以想到以下错误原因-

  1. 当测试脚本和BrowserStackLocal二进制连接不使用相同的用户名和访问密钥时。您可以在此处验证与您的帐户关联的用户名和访问密钥,https://www.browserstack.com/accounts/settings

  2. 当测试脚本和BrowserStackLocal二进制连接不使用相同的本地标识符时

  3. 当使用相同参数调用新的 BrowserStackLocal 二进制文件时,旧连接将关闭,从而显示错误
  4. 由于某些网络连接问题,二进制文件在您这边断开连接

您可以确保测试脚本和 BrowserStackLocal 二进制文件使用相同的访问密钥和相同的本地标识符,以防万一,如果您为 BrowserStackLocal 二进制连接使用本地标识符。此外,请确保在启动具有相同参数的新连接之前终止 BrowserStackLocal 二进制文件的所有旧连接。在此处阅读有关本地测试的更多信息,https://www.browserstack.com/local-testing

我收到此错误是因为我有 2 个 BrowserstackLocal.exe 运行ning 实例。

我能够在任务管理器中看到它们。我选择结束一个任务,他们都退出了。我使用 CMD 提示符重新 运行 BrowserstackLocal.exe(使用我的密钥)并重新 运行 我的测试,并且成功了。