【问题标题】:Selenium grid with appium android and protractor configuration带有 appium android 和量角器配置的 Selenium 网格
【发布时间】:2017-09-08 15:35:48
【问题描述】:

我有一个运行 chrome、firefox 和 android 节点的 selenium 网格

我在 Angular cli 项目中有这个量角器配置:

// Protractor configuration file, see link for more information
// https://github.com/angular/protractor/blob/master/lib/config.ts

const {SpecReporter} = require('jasmine-spec-reporter');
var HtmlScreenshotReporter = require('protractor-jasmine2-screenshot-reporter');

var screenshotReporter = new HtmlScreenshotReporter({
  dest: 'target/screenshots',
  filename: 'my-report.html'
});

exports.config = {
  allScriptsTimeout: 11000,
  specs: [
    './e2e/**/*.e2e-spec.ts'
  ],
  multiCapabilities: [{
    'browserName': 'chrome'
  }, {
    'browserName': 'firefox'
  }, {
    'browserName': 'android',
    'platformName': 'Android',
    'platformVersion': '7.1.1',
    'deviceName': 'Nexus 5'
  }],
  // directConnect: true,
  seleniumAddress: "http://localhost:4444/wd/hub",
  framework: 'jasmine',
  jasmineNodeOpts: {
    showColors: true,
    defaultTimeoutInterval: 30000,
    print: function () {
    }
  },

  beforeLaunch: function () {
    return new Promise(function (resolve) {
      screenshotReporter.beforeLaunch(resolve);
    });
  },

  onPrepare: function () {
    require('ts-node').register({
      project: 'e2e/tsconfig.e2e.json'
    });
    jasmine.getEnv().addReporter(new SpecReporter({spec: {displayStacktrace: true}}));
    jasmine.getEnv().addReporter(screenshotReporter);
  },

  afterLaunch: function (exitCode) {
    return new Promise(function (resolve) {
      screenshotReporter.afterLaunch(resolve.bind(this, exitCode));
    })
  }
};

当我启动我的 ng e2e 任务时,测试在 Firefox 和 chrome 节点上运行良好。但是,我从 android 功能中得到了这个错误:

WebDriverError: An unknown server-side error occurred while processing the command. Original error: The desired capabilities must include either an app, appPackage or browserName
...

如果我做对了,android webdriver 会要求我包含一个 browserName,尽管我已经提供了它。有人有想法吗?

【问题讨论】:

  • 尝试删除 'deviceName': 'Nexus 5' 看看是否有帮助

标签: android angular selenium protractor angular-cli


【解决方案1】:

您的量角器配置文件中的 andriod 功能将无法为您获取任何匹配的节点。因为你在能力上使用了一个错误的名称和一个错误的值。

你使用'platformVersion',但在 selenium gird 上是'version'。
您将“deviceName”设置为“Nexus 5”,但在 selenium gird 上是“nexus_5_7.1.1”

请在量角器配置文件中将“platformVersion”更改为“version”并将“Nexus 5”更正为“nexus_5_7.1.1”,然后重试。

我最后担心的是您的 selenium 网格上的 browserName 是“android”,我不确定测试是否可以打开浏览器。

在大多数情况下,我们在安卓设备上安装 Chrome 并在将设备注册到 selenium 网格和量角器配置文件时将 browserName 设置为“Chrome”。

我确实不知道'andriod'代表的是哪个浏览器,内置浏览器绑定了andriod OS?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-05
    • 1970-01-01
    • 2015-10-15
    • 1970-01-01
    • 1970-01-01
    • 2015-04-10
    • 2018-02-05
    • 1970-01-01
    相关资源
    最近更新 更多