我正在使用webdriverio,需要等待元素进入视口
所以我尝试了
browser.waitUntil(async () => {
const b = await link.isDisplayedInViewport()
return b;
}, 5000, 'expected to be visible after 5s');
但是以某种方式waitUntil
想要布尔值而不是Promise<boolean>
我该如何解决?
更新:
我在NodeJs应用程序中按如下方式使用WebdriverIO
const { remote } = require('webdriverio');
(async () => {
const browser = await remote({
logLevel: 'error',
path: '/',
capabilities: {
browserName: 'chrome'
}
});
await browser.url('https://example.com');
const link = await browser.$('.special-link');
const ok = await browser.waitUntil(async () => {
const b = await link.isDisplayedInViewport()
return b;
}, 5000, 'expected to be visible after 5s');
await link.click();
const title = await browser.getTitle();
console.log('Title was: ' + title);
await browser.deleteSession();
})().catch((e) => console.error(e));
在options中看不到关于有无异步/等待的任何信息。此外,我不使用测试框架!
答案 0 :(得分:2)
很抱歉,您的回答很晚。但是,如果您仍在寻找解决方案,请避免使用aync / await
get link() { return browser.element('.special-link'); } browser.waitUntil(() => this.link.isVisibleWithinViewport(), 20000, 'link not visible')
答案 1 :(得分:0)
df = df[df.columns[1:].tolist() + df.columns[:1].tolist()]
print (df)
a b c d ratio
0 34 63 1 5 0.67
1 34 63 3 7 0.90
2 24 74 2 6 0.20
3 24 74 4 8 0.34
4 56 56 1 5 0.70
5 56 56 3 7 0.50
如果将const elementWaitingToBeDisplayed = $("some element locators")
elementWaitingToBeDisplayed.waitForDisplayed(10000, false)
的第二个参数设置为elementWaitingToBeDisplayed.waitForDisplayed
,它将等待相反的情况。