WebdriverIO 中带有等待参数的"期望"函数不起作用



我是webdriverio的新手,目前遇到了一个问题。我需要在Java中实现类似awaitity的东西——让expect((函数在失败前尝试一段时间的轮询间隔成功断言。我已经试过了https://webdriver.io/docs/api/expect-webdriverio.html,所以我设置了

beforeSession: function (config, capabilities, specs) {
require('expect-webdriverio').setOptions({ wait: 50000 })
},

在我的wdio.conf.ts中,但它对我不起作用。它似乎没有等待超时,只是在调用我的expect((后立即失败。你能告诉我我可能做错了什么吗?

更新:我的期望:

it('should be able to save stuff', () => {
expect(mainPage.getDataForRow('My row', 'My row')).toBe('Hello');
});

它适用于内置的匹配器。例如CCD_ 1或CCD_。这些高阶匹配器已经包含";轮询";它们内部的逻辑。然而,在您的代码示例中,您使用mainPage.getDataForRow('My row', 'My row')执行此行并尝试将其与'Hello'进行比较的确切时刻获取元素的值。正确的方法是使用开箱即用的正确匹配器,而不是";得到";方法。但是,如果您的情况非常具体,您可以尝试自己实现带有轮询行为的助手。示例:

function expectToContainText(elem, text) {
return borser.wait(() => element.getAttribute('innerText').then(innerText => innerText == text));
}

最新更新