0

我正在尝试决定是否使用实习生或量角器进行我与 SauceLabs 的 e2e 测试,我发现量角器提供的这些“by”(by.model、by.binding、by.repeater)真的很有帮助,我想知道是否这种定位器策略也可以在实习生中使用。

4

1 回答 1

2

Protractor 使用 WebDriverJS 库,而不是 WD.js 库,因此它不太可能直接兼容,但是通过编写 Protractor 提供的相同类型的辅助函数,Protractor 工作原理背后的想法在 Intern 中也是可能的:

define([ 'intern!tdd', 'tests/support/locators' ], function (tdd, locators) {
  tdd.suite('suite', function () {
    tdd.test('test', function () {
      var remote = this.remote;
      remote.get('http://example.com')
        .then(locators.by.model('foo'))
        .then(function (model) {})
        // ...etc
        ;
    });
  });

其中,在上面,locators.by.model是这样的方法:

function model(modelId) {
  return this.execute(function () {
    return document.querySelectorAll(['ng-model=' + modelId + ']');
  });
}

编辑:您也可以clientsidescripts直接使用量角器的模块:

define([ 'intern!tdd', 'intern/dojo/node!protractor/lib/clientsidescripts' ], function (tdd, scripts) {
  tdd.suite('suite', function () {
    tdd.test('test', function () {
      var remote = this.remote;
      remote.get('http://example.com')
        .execute(scripts.findByModel, [ 'foo' ])
        .then(function (model) {})
        // ...etc
        ;
    });
  });
于 2014-02-25T15:46:54.660 回答