等效Selenium Webdriver调用替换Protractor调用

时间:2018-01-02 22:55:09

标签: node.js selenium-webdriver protractor

我们正在从Protractor迁移到使用SeleniumWebdriver for Node.js: https://www.npmjs.com/package/selenium-webdriver

使用Protractor for AngularJS,我们可以:

element.all(by.repeater('r in roles')).first().element(by.css('.update-role')).click();

我想弄清楚使用require('selenium-webdriver')的等效调用可能是什么样的,有人有想法吗?

具体来说,by.repeater()来电是我不知道的等价物。

1 个答案:

答案 0 :(得分:1)

这很简单。你需要找到所有元素,并将它们视为相似的元素。

element.all(by.css('[ng-repeat="r in roles"]')).then(function(eachRepeat){
    for(var i=0;i<eachRepeat.length; i++){
        // do something else with the repeat. where eachRepeat[0] is the first element
       console.log(eachRepeat[i]);
    }
});

您还可以为元素编号添加条件。或元素的文本。

element.all(by.css('[ng-repeat="r in roles"]')).getText().then(function(eachRepeat){
        for(var i=0;i<eachRepeat.length; i++){
           console.log(eachRepeat[i]);
           if(eachRepeat[i] === 'someSpecificText'){
                eachRepeat[i].click();
           }else{
           console.log('error');
           }
        }
    });

如果您对此有任何疑问,请与我们联系。