当我需要等待某个元素变得可见时,我可以像这样将函数简单地调用选择器:
this
但是我如何等待元素消失?
答案 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 });