等效Selenium Webdriver调用替换Protractor调用

问题描述 投票:0回答:1

我们正在从量角器迁移到使用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()电话,是我不知道的等价物。

node.js selenium-webdriver protractor
1个回答
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');
           }
        }
    });

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

© www.soinside.com 2019 - 2024. All rights reserved.