galen:如何使用相同的url等待动态新页面

时间:2017-11-13 23:25:20

标签: node.js gruntjs galen

我开始与Galen合作,我的测试完美无缺:

this.HomePage = $page('Welcome Page', {
    aboutButton: 'nav.navbar .about'
});

this.AboutPage = $page('About page', {
    modalContent: 'div.modal-content',
    supportLink: '.support-link',
    dismissButton: '.dismiss'
});


var homePage = new HomePage(driver);
homePage.waitForIt();
homePage.aboutButton.click();

var aboutPage = new AboutPage(driver);
aboutPage.waitForIt();

我理解waitForIt方法等待页面定义的所有属性,因此框架知道何时执行下一个语句。

现在,我想将此作为一个繁琐的任务运行,我一直在使用grunt-galenframework,我正确配置,一切正常,但我无法进行上一次测试通过,任务代码如下:

load('../gl.js');

forAll(config.getDevices(), function (device) {
    test('simple test on ' + device.deviceName, function () {
        gl.openPage(device, config.getProjectPage(), "Welcome Page", {
            aboutButton: 'nav.navbar .about'
        });

        elements.aboutButton.click();

        // MISSING WAIT FOR ABOUT_PAGE

        gl.runSpecFile(device, './test/responsive/galen/about.gspec');
    });
});

如您所见,我进入Welcome Page,然后我需要点击按钮,等待对话框出现,然后查看about.gspec规格(他们验证对话框内的元素)。

那么如何添加等待新元素显示在同一网址上?感觉grunt-galenframework仅在输入新网址时提供waitopenPage方法。

1 个答案:

答案 0 :(得分:1)

你可以尝试

elements.newElement.waitToBeShown()

here中的方法应该可用。

PS:我是Galen的grunt插件的作者,也参与了Galen框架本身的开发