[英]Using promises in selenium webdriver
我正在使用webdriverJS在chrome中进行一些自动化测试。
我目前正在等待某个元素在单击之前显示在网页上,尽管我遇到的问题是该元素需要几秒钟才能显示出来,然后才能被单击,因此我需要驱动程序先休眠几秒钟再单击元素。 我想知道如何在webdriverJS中使用promises来实现这一目标。
return driver.wait(until.elementLocated(By.className('elementName')), 5000)
.then(element => {
driver.sleep(2000);
element.click();
});
由于javascript是异步的,因此该元素正试图在睡眠之前被单击,因此我想知道如何将promises合并到webdriverJS中,以便仅在睡眠完成后才进行单击。
根据webdriver文档 ,sleep方法将返回一个promise,该promise将在到达时间时解决。
您可以使用以下代码处理异步部分:
let element
return driver.wait(until.elementLocated(By.className('elementName')), 5000)
.then(_element => {
element = _element
return driver.sleep(2000)
})
.then(() => element.click())
使用异步/等待功能:
const func = async driver => {
const element = await driver.wait(until.elementLocated(By.className('elementName')), 5000)
await driver.sleep(2000)
element.click()
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.