在我的应用程序中,有一个“单击以添加电子邮件”链接,如果多次单击同一链接,则会出现警报消息,提示您已达到最大限制。
我该如何使用带有量词的量角器。我用过循环,但是没用
for (let i:number=1; i<5; i++){
if (EmailLinkpageElement.isDisplayed())
{
// click on the link
}
else
{
// verify the text message
}
}
请提出我正在尝试做的事情,但未找到任何解决方案。
答案 0 :(得分:0)
通常,您希望单击一个元素的次数未知,直到出现警报为止。因此,也许您可以采用这种方法:
此函数采用一个sf
对象,该对象被反复单击,直到到达给定的ElementFinder
或出现警告框为止。
timeout
您应该了解const clickElementUntilAlertPresent = async (el: ElementFinder, timeout: number = 10 * 1000): Promise<boolean>=> {
const clickDelay = 100
let done = false
// start interval for clicking element repeatively
const interval = setInterval(() => {
// IF the function is done, clear interval,
if(done) {
console.log("stop clicking element now", el.locator.toString())
clearInterval(interval)
return
}
console.log("clicking element", el.locator.toString())
el.click()
}, clickDelay)
// wait until alert box is present. After timeout, returns false.
const result = await browser.wait<boolean>(browser.ExpectedConditions.alertIsPresent(), timeout)
// Result is now true if alert is present, or false, if timeout reached.
// Important here, to set done to true. We want to stop clicking interval!
done = true
return result
}
类。
例如,
Promise
将始终为true,因为它返回一个if (EmailLinkpageElement.isDisplayed()) { }
对象,并且该对象在javascript中被评估为Promise
。
如果您不熟悉truethy
课程,那么您现在的首要任务就是学习它们! Promise
任务需要它们,而在测试中则很多。
这里是一个资源:Promise