javascript - 失败 : Cannot read property 'bind' of undefined Protractor

标签 javascript angularjs binding protractor

获取失败:无法读取未定义的属性“绑定(bind)”

页面对象类:

this.popupToastIP = function(){
element.all(by.className('toast-success toast ng-trigger ng-trigger-
flyInOut')).then(function(){
element(by.className('toast-success toast ng-trigger ng-trigger-flyInOut')).getText(); 
});

测试规范:

browser.wait(EC.visibilityOf(publisher_whitelist_page.popupToastIP),5000);
expect(publisher_whitelist_page.popupToastIP.toEqual('Ip address removed'));  

已尝试删除“全部”但无济于事 - 仍然出现相同的错误(遵循帖子 undefined property 'bind' when using expected conditions

的建议

如有任何帮助,我们将不胜感激!

谢谢!

柯斯蒂

编辑

尝试添加绑定(bind)但再次无济于事。

this.popupToastIP = function(){
element.all(by.className('toast-success toast ng-trigger ng-trigger-
flyInOut')).then(function(){
element(by.className('toast-success toast ng-trigger ng-trigger-
flyInOut')).getText();
}).bind(this);
};

最佳答案

你的代码是错误的,无论用 Protractor 还是其他东西都可以。另一件事是您可以缩进您的代码以便于其他人阅读。

1) 这个函数的最终目的是什么,从一个元素中获取文本或者 找到一个元素?

this.popupToastIP = function(){
    element.all(by.className('toast-success toast ng-trigger ng-trigger-flyInOut'))
    .then(function(){
        element(by.className('toast-success toast ng-trigger ng-trigger-flyInOut'))
        .getText(); 
    });
}

问题 1
为什么你两次找到同一个类名的元素,element.all(xxx) 是多余的,因为你没有在下面的 then() 中使用它的结果。

第 2 期
你没有为函数返回值,但你在测试规范中的代码要求它有返回值。

2) 你在测试规范中的代码如下,要求popupToastIP返回一个元素和元素的文本,它们已经冲突了。

browser.wait(EC.visibilityOf(publisher_whitelist_page.popupToastIP),5000); // require return an element
expect(publisher_whitelist_page.popupToastIP.toEqual('Ip address removed')); // require return text of element

问题 1
您将 popupToastIP 声明为一个函数,您错过了它背后的 ()。函数不可能在页面上可见并且等于“IP 地址已删除”

试试下面的代码

// Page Object
this.popupToastIP = element(by.className('toast-success toast ng-trigger ng-trigger-flyInOut'));

// Test Spec
browser.wait(EC.visibilityOf(publisher_whitelist_page.popupToastIP),5000);
expect(publisher_whitelist_page.popupToastIP.getText()).toEqual('Ip address removed'));

关于javascript - 失败 : Cannot read property 'bind' of undefined Protractor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48110503/

相关文章:

angularjs - Bootstrap-select,angularjs 下拉菜单不起作用

Silverlight 标记扩展

wpf - 如何将动态资源键值与wpf数据表中的列值绑定(bind)

ios - 在 View Controller 中绑定(bind)元组或字符串以使用 RXSwift 查看模型

javascript - AngularJS 日期过滤器 firefox/safari 问题

javascript - 如何获得Polymer Web Component的组合DOM?

javascript - 即使页面刷新也永久更改数组

javascript - 使用 javascript 匿名化 DICOM 文件

javascript - 如何在 Angular JS 中输入小时和分钟?

php - HTML5 : AJAX file upload with progress bar