我在.ts文件的弹出窗口中有一个按钮,我需要点击该按钮并执行一些操作,
accept() {
let prompt = Alert.create({
title : 'Accepted',
cssClass : 'accepted',
enableBackdropDismiss : false,
buttons: [{
text : 'Accept',
cssClass : 'button1',
handler : data => {
this.approveForm();
}
},{
text : 'Cancel',
cssClass : 'button3',
id : 'cancel',
handler : data => {
console.log(data);
}
}]
});
this.nav.present(prompt);
}
我尝试使用它的id终端说没有找到任何元素 我尝试使用按钮文本
it('should open the accept and reject popup click cancel button',() => {
acceptPopup.click();
element(by.buttonText('CANCEL')).click();
browser.driver.sleep(6000);
});
但我仍然犯了错误
✗ should open the accept and reject popup click cancel button
- Failed: No element found using locator: by.buttonText("CANCEL")
F
答案 0 :(得分:2)
您的弹出窗口很可能是异步打开的,并且它不会立即显示。尝试等待预期的元素出现,当找不到元素时它会超时并出现错误,或者只有在弹出窗口和按钮出现后才继续当前测试的控制流程。
var timeout = 10000; // default value for timeout
browser.wait(function () {
return browser.isElementPresent(element(by.buttonText('CANCEL')));
}, timeout);