在量角器插件

时间:2017-07-20 07:34:51

标签: angularjs selenium-webdriver protractor

我想在量角器测试的每一步之前添加额外的代码。所以我决定编写一个小插件并使用其中一个钩子,比如“waitForPromise”。

https://github.com/angular/protractor/blob/5.1.2/lib/plugins.ts#L163

我有问题要去任何量角器或浏览器实例。这是代码示例。

var protractor = require('protractor');
var EC = protractor.ExpectedConditions;

module.exports = {
    waitForPromise: function(){
        //this add 3 second after each promise(work fine)
        browser.sleep(3000);

        //this doesn't work. looks like it goes to endless promise execution.
        return browser.wait(function () {
            return $('body').getAttribute('class').then(function (attr) {
                console.log(attr);
            });
        },3000);
    }
};

更新 根据研究,我已经更新了我的例子。

更新:如果有人知道为什么此代码不起作用,请随时回答。

waitForPromise: function(){
    return $('body').isPresent().then(function (val) {
        console.log('present',val);
    });
}

如果有人对“waitForPromise”的解决方案感兴趣,您可以查看this

1 个答案:

答案 0 :(得分:0)

您可以通过以下方式之一在量角器中使用定位器:

element(by.css('app-title'));

或上面的简写是:

$('app-title');

你正在使用两者,所以我认为这是问题所在。请参阅量角器中使用定位器的官方页面 - http://www.protractortest.org/#/locators