javascript - Angular Protractor 中的错误处理

标签 javascript angularjs protractor webdriverjs

我不熟悉用于自动化 angularJs 应用程序的 Protractor 。我正在尝试从元素列表中选择一个元素。我正在尝试进行错误处理,但由于 promise ,没有像我预期的那样工作。

在下面的代码中,如果我传递了一个无效的类别名称,它永远不会打印错误,而是转到验证部分(预期)并失败。

请帮助我理解这一点以及如何解决这个问题。我尝试使用回调但不是运气。我也试过 try catch 但仍然没有运气。感谢这里的任何帮助。谢谢

this.elements = element.all(by.css('.xyz'));
this.selectCategory = function (categoryName) {
    this.elements.each(function (category) {
        category.getText().then(function (text) {
            if (text === categoryName) {
                log.info("Selecting Category");
                category.click();
            }
        }, function (err) {
            log.error('error finding category ' + err);
            throw err;
        });
    })
};

最佳答案

使用filter()并检查有多少元素匹配:

var filteredCategories = this.elements.filter(function (category) {
    return category.getText().then(function (text) {
        return text === categoryName;
    });
});  
expect(filteredCategories.count()).toEqual(1);
filteredCategories.first().click();

关于javascript - Angular Protractor 中的错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35515889/

相关文章:

javascript - Protractor - 比较数字

selenium - Protractor 留下了 chromedriver.exe

javascript - 如何替换 DOM 节点并将其包装起来?

javascript - 如果每天单击一次按钮并在第二天使用 JavaScript 和 AngularJS 1 启用,如何禁用按钮?

javascript - 如何将变量从两级以上的范围获取到隔离范围

angularjs - 过滤属性,即使它不存在

javascript - 子任务完成后让 grunt 运行任务

javascript - Bootstrap 轮播中的 NVD3 图表

javascript - 在 jQuery UI Sortable 之后更新 CollectionView 内容的最佳方式?

javascript - 用 CSS 制作的时钟箭头无法正常工作