Angularjs 在量角器插件中查找元素

Angularjs 在量角器插件中查找元素,angularjs,selenium-webdriver,protractor,Angularjs,Selenium Webdriver,Protractor,我想在量角器测试的每个步骤之前添加额外的代码。所以我决定写一个小插件并使用一个钩子,比如“waitForPromise” 我无法访问任何量角器或浏览器实例。下面是代码示例 var protractor = require('protractor'); var EC = protractor.ExpectedConditions; module.exports = { waitForPromise: function(){ //this add 3 second aft

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

我无法访问任何量角器或浏览器实例。下面是代码示例

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”的工作解决方案感兴趣,您可以检查。

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

element(by.css('app-title'));
或者上面的简称是:

$('app-title');

你两者都在使用,所以我认为这就是问题所在。请参考在量角器中使用定位器的官方页面-

对于这个错误,我已经尝试了很多方法来选择元素。两种方法都不起作用。测试一直停留在这一步上,好像它无法以某种方式解决承诺。我已经更新了线程。您使用的是Node.js的哪个版本?Node版本:v6.11.0