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

时间:2018-01-16 16:05:31

标签: 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';
            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 值从第一步传递到下一步。类似地,我们如何在场景之间传递变量值。

1 个答案:

答案 0 :(得分:0)

您的量角器测试仅驻留在普通的javascript文件中。因此,您只需通过常规全局变量传递数据即可。像这样:

document.all

请记住在顶部声明folderName变量,以使其在所有步骤函数中均可访问。

要在场景之间传递数据,可以使用黄瓜钩子。查看更多信息 https://github.com/cucumber/cucumber-js/blob/master/docs/support_files/hooks.md