testing - 如何在 Protractor 中从 promise 中获取值(value)到数组中

标签 testing selenium-webdriver jasmine protractor end-to-end

我创建了一个函数来获取所有链接并单击它们,然后使用另一种方法处理窗口。一切正常,但现在我想设置一个条件,即只点击几个链接。所以函数是这样的:

this.getLinks = function(){
    browser.driver.findElements(that.links).then(function(foundElements){
        var val;
        for(var i =0;i<foundElements.length;i++){
            browser.sleep(3000);
            foundElements[i].getText().then(function(textValue){
                val = textValue;
                **console.log(val);**  
            });
            if(val != '??????' || val != '?????????' || val != '??????'){
                foundElements[i].click();
                that.getWindows();
             }
           }
        });
     };

我想从 promise 中获取 val 的值,这样我就可以设置一个条件,即只单击选定的链接。

最佳答案

使用filter()根据文本值和 each() 过滤掉元素将函数应用于过滤元素的每个元素:

this.getLinks = function() {
    element.all(that.links).filter(function(elm) {
        return elm.getText().then(function (val) {
            return val != '??????' || val != '?????????' || val != '??????';
        });
    }).each(function (elm) {
        elm.click();
    });
};

关于testing - 如何在 Protractor 中从 promise 中获取值(value)到数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30112165/

相关文章:

javascript - 测试来自 Backbone.View 的触发点击,它会打开一个新的 Backbone.View

testing - 在 testfx 中启用失败测试的屏幕截图功能

python - 通过远程驱动程序为 Firefox 设置首选项不起作用

node.js - 如何处理 Selenium Webdriver Node Js 中的错误。 NoSuchElementError

angularjs - 控制如何处理 $httpBackend.when() 中的每个捕获

javascript - 如何使用使用自己的 XMLHttpRequest 而不是 $http 的库来测试服务

java - Mvn test 正确执行所有测试但是 mvn DTest 给出错误

file - 用于测试域的批处理文件

node.js - 拦截IBM的Watson Botkit中间件进行测试

java.lang.ClassCastException : org. openqa.selenium.By$ById 无法转换为 org.openqa.selenium.WebElement