如何等待元素在TestCafe中消失?

时间:2019-03-03 15:31:32

标签: testing automated-tests e2e-testing testcafe

当我需要等待某个元素变得可见时,我可以像这样将函数简单地调用选择器:

this

但是我如何等待元素消失?

2 个答案:

答案 0 :(得分:4)

要等待元素消失,可以使用我们的内置等待机制进行断言。有关其工作原理的更多信息,请参见the documentation

import { Selector } from 'testcafe';

fixture `fixture`
    .page `http://localhost/testcafe/`;

test('test 2', async t => {
    //step 1

    //wait for the element to disappear (assertion with timeout)
    await t.expect(Selector('element').exists).notOk({ timeout: 5000 });

    //next steps
});

或者您可以使用ClientFunction

import { ClientFunction } from 'testcafe';

fixture `fixture`
    .page `http://localhost/testcafe/`;

const elementVisibilityWatcher = ClientFunction(() => {
    return new Promise(resolve => {
        var interval = setInterval(() => {
            if (document.querySelector('element'))
                return;

            clearInterval(interval);
            resolve();
        }, 100);
    });
});

test('test 1', async t => {
    //step 1

    //wait for the element to disappear
    await elementVisibilityWatcher();

    //next steps
});

答案 1 :(得分:0)

当你等待一个元素接收display:none; ::

await browser.expect( Selector(".m-loader").visible ).notOk({ timeout: 30000 });