javascript - Protractor 条件测试

标签 javascript angularjs protractor

我正在尝试运行一套测试,其中一个测试依赖于元素是否显示在页面上。有问题的元素是表格中的分页。

该表始终存在,但仅在记录数超过 20 时才显示分页。我正在尝试测试删除表中最后一条记录,因此我要么删除最后一条记录,要么单击分页中的“最后”按钮,然后删除最后一条记录。

我尝试实现以下SO answer ,见下面代码:

it('should test the deletion of a record against whether pagination exists or not', function() {
    element(by.css('.pagination')).isDisplayed().then(function(present) {
        if(present) {
            // Click last button and perform delete on last record
        } else {
            // perform delete on last record
        };
    });
});

但是,在运行测试时,当页面的记录数小于 20 且分页时,Protractor 会提示 No element found using locator: By.cssSelector(".pagination")现在显示。

当我知道分页是否存在时,我已经通过了这两个实例的测试,但为了尽可能保持干燥,我想有条件地检查并确保两组测试都可以通过,具体取决于记录计数。

任何帮助将不胜感激!

最佳答案

问题是您必须使用 isPresent 而不是 isDisplayed。它可能会帮助您确定真/假值。

关于javascript - Protractor 条件测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34654527/

相关文章:

javascript - 如何在不使用对象文字值的情况下从 setter 访问表单数据?

javascript - 使用背景 mousemove 脚本平滑移动

javascript - 自举三态开关

javascript - 如何查看Angular.JS中动态添加的字段?

javascript - 在 Protractor 中监听浏览器事件

javascript - 如何从另一个 javascript 调用 javascript 函数,其中两者都在同一个 html 上

javascript - 谷歌地图航点不显示完整路径

ruby-on-rails - Angular + Rails 应用程序无法在 heroku 上运行 - 无法实例化模块

dom - 从DOM中删除元素时如何等待?

javascript - Protractor ,JavaScript 比较 : Cannot read property 'forEach' of undefined