盖伦:如何等待具有相同 url 的动态新页面

galen: how to wait dynamic new page with same url

我开始与 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 方法等待页面定义的所有属性,以便框架知道何时执行下一条语句。

现在,我想 运行 这是一个 g运行t 任务,我一直在使用 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 规范(他们验证对话框中的元素)。

那么如何添加等待新元素出现在同一个 URL 上? 感觉 grunt-galenframework 只提供 wait 当使用 openPage 方法输入新的 url 时。

你可以试试

elements.newElement.waitToBeShown()

here 中的方法应该可用。

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