Protractor 量角器-javascript-在步骤之间传递变量值

Protractor 量角器-javascript-在步骤之间传递变量值,protractor,cucumber,cucumberjs,Protractor,Cucumber,Cucumberjs,以下是我的步骤: Then(/^I clear default folder name$/, function () { var d = new Date(); var n = d.getTime(); // var folderName= "Drawings"+Math.random()+'\n'; var folderName= "Drawings"+n+'\n';

以下是我的步骤:

Then(/^I clear default folder name$/, function () { 
            var d = new Date();
            var n = d.getTime();      
           // var folderName= "Drawings"+Math.random()+'\n';
           var folderName= "Drawings"+n+'\n';
            var row = element.all(by.repeater('node in nodes.selectedNode.children  track by node._id')).last();
            var cells = row.all(by.tagName('input'));
            return cells.map(function (elm) {
                    return elm.clear().then(function(){
                            return elm.sendKeys(folderName);
                    });
              });
        });
Then(/^I see folder updated notification$/, function () {   
            return element(by.xpath("//div[contains(@class,'notification-bottom-bar show')]")).getText().then(function(itemss) {
                    console.log(itemss);
                    return expect(itemss).to.have.string(folderName+ 'has been updated'); 
                 })
});

在本例中,我们需要如何将folderName值从第一步传递到下一步。类似地,我们可以在场景之间传递变量值。

您的量角器测试仅驻留在普通javascript文件中。所以,您可以通过普通的全局变量传递数据。像这样:

let folderName;
Then(/^I clear default folder name$/, function () { 
            var d = new Date();
            var n = d.getTime();      
            folderName= "Drawings"+Math.random()+'\n';
           var folderName= "Drawings"+n+'\n';
            var row = element.all(by.repeater('node in nodes.selectedNode.children  track by node._id')).last();
            var cells = row.all(by.tagName('input'));
            return cells.map(function (elm) {
                    return elm.clear().then(function(){
                            return elm.sendKeys(folderName);
                    });
              });
        });
Then(/^I see folder updated notification$/, function () {   
            return element(by.xpath("//div[contains(@class,'notification-bottom-bar show')]")).getText().then(function(itemss) {
                    console.log(itemss);
                    return expect(itemss).to.have.string(folderName+ 'has been updated'); 
                 })
});
记住在顶部声明folderName变量,以便在所有步骤函数中都可以访问它

要在场景之间传递数据,可以使用cucumber钩子。有关更多信息,请访问