【问题标题】:Find Element in protractor plugin在量角器插件中查找元素
【发布时间】:2017-07-20 07:34:50
【问题描述】:

我想在量角器测试的每个步骤之前添加额外的代码。所以我决定写一个小插件并使用“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

【问题讨论】:

    标签: angularjs selenium-webdriver protractor


    【解决方案1】:

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

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

    或者上面的简写是:

    $('app-title');
    

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

    【讨论】:

    • 抱歉这个错误,我已经尝试了很多方法来选择元素。两种方式都行不通。测试挂在该步骤上,就像它无法以某种方式解决承诺一样。我已经更新了帖子。
    • 您使用的是哪个版本的 Node.js?
    • 节点版本:v6.11.0
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-23
    • 1970-01-01
    • 2016-03-04
    相关资源
    最近更新 更多