0

我正在尝试在防火墙后面运行 browserstack。

我试图在终端上运行这个命令:

RK$ ./BrowserStackLocal --key <key> --force-local


BrowserStackLocal v7.0

You can now access your local server(s) in our remote browser.

Press Ctrl-C to exit

我打开了另一个终端并运行了命令

npm run test:functional:cr:mobile

我收到以下错误:

  1) Run sample test flow page:
     Uncaught WebDriverError: [browserstack.local] is set to true but local testing through BrowserStack is not connected.

这是我的config.js

'use strict'
import webdriver from 'selenium-webdriver'
let driver
module.exports = {
    getDriverConfiguration: function (testTitle, browserName) {
            var capabilities = {
                'browserName': process.env.BROWSER || 'Chrome',
                'realMobile': 'true',
                'os': 'android',
                'deviceName': process.env.DEVICE || 'Samsung Galaxy S8',
                'browserstack.user': 'USER',
                'browserstack.key': 'KEY',
                'browserstack.debug': 'true',
                'build': 'Build for mobile testing',
                'browserstack.local' : 'true',
                'browserstack.localIdentifier' : 'Test123'
            }
            driver = new webdriver.Builder().withCapabilities(capabilities).usingServer('http://hub-cloud.browserstack.com/wd/hub').build()
            driver.manage().deleteAllCookies()
            return driver
    }
}

我启用browserstack.local了 true 但我仍然收到此错误。

不知道我哪里错了。

请帮助。

4

1 回答 1

0

错误[browserstack.local] 设置为 true,但未连接通过 BrowserStack 进行的本地测试。如果您的 BrowserStackLocal 连接(您使用 ./BrowserStackLocal --key --force-local 建立的连接)断开连接,则返回。

我建议您改用以下方法,以避免额外的步骤并轻松管理您的本地测试连接:

npm install browserstack-local

安装 browserstack-local 模块后,使用以下代码片段作为参考来修改代码并从代码本身启动 browserstack-local(在行 driver = new webdriver.Builder().withCapabilities(capabilities).usingServer( ' http://hub-cloud.browserstack.com/wd/hub ').build() ),而不是从单独的终端窗口启动它:

var browserstack = require('browserstack-local');

//creates an instance of Local
var bs_local = new browserstack.Local();

// replace <browserstack-accesskey> with your key. You can also set an environment variable - "BROWSERSTACK_ACCESS_KEY".
var bs_local_args = { 'key': '<browserstack-accesskey>', 'forceLocal': 'true' };

// starts the Local instance with the required arguments
bs_local.start(bs_local_args, function() {
  console.log("Started BrowserStackLocal");
});

// check if BrowserStack local instance is running
console.log(bs_local.isRunning());

// stop the Local instance
bs_local.stop(function() {
  console.log("Stopped BrowserStackLocal");
});
于 2018-03-21T04:57:37.457 回答