javascript - Protractor 与期望找到元素有关的问题

标签 javascript angularjs protractor

相当基本的测试,但正在返回

× 受邀贡献者成为公司所有者 - 失败:owner.$(...).isDisplayed(...).toBe 不是函数

基本上,我有一个表,显示网站的所有者和贡献者,当某人是所有者时,元素在表的该行上可见。我知道这个函数适用于选择并使该人成为所有者,但是当尝试设置期望时它会出错。还有其他方法可以检查所有者变量吗?

it('Invited contributor is made into a company owner', function() {
        settingsPage.promoteContributorToOwner();

        var owner = element.all(by.repeater('existingOwner in companyOwners')).filter(function(rowElement){
            return rowElement.element(by.css('td[ng-bind="existingOwner.Name"]')).getText().then(function(text){
                return text.trim() == 'protractor contributor'
            });
        }).first();
        expect(owner.$('i[title="Site Owner"]').isDisplayed().toBe('true'));

    }); 

最佳答案

这只是一个括号放错位置的问题。您实际上是在尝试对 isDiplayed() 返回的值调用 toBe(),而不是对 expect() 返回的对象调用。因此,通过将最后一个括号向后移动一点,这应该按预期工作(双关语):

expect(owner.$('i[title="Site Owner"]').isDisplayed()).toBe('true');

关于javascript - Protractor 与期望找到元素有关的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42893453/

相关文章:

javascript - Angular 2.x 在头部更改 <title>(在我的应用程序之外)

javascript - 使用 Javascript 从字节数组下载文件

javascript - 在 Angular 中将响应从工厂返回到 Controller

javascript - 使用 AngularJS $anchorScroll 滚动到另一个页面的 anchor 标记

angular - 在 Protractor 测试中访问 Angular 指令/组件实例

javascript - 一次多次复制模板表,同时保持范围保护

javascript - 使用 Node.js 使用数据库值生成动态 word 文档

javascript - 创建工厂后看不到数据

javascript - 错误 : Invalid Chai property: toBe. 您是说 "to"吗?

javascript - 模块 'httpMock' 不可用