无法点击弹出窗口中的按钮e2e

时间:2016-05-10 11:08:38

标签: angular protractor ionic2

我在.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

1 个答案:

答案 0 :(得分:2)

您的弹出窗口很可能是异步打开的,并且它不会立即显示。尝试等待预期的元素出现,当找不到元素时它会超时并出现错误,或者只有在弹出窗口和按钮出现后才继续当前测试的控制流程。

var timeout = 10000; // default value for timeout
browser.wait(function () {
  return browser.isElementPresent(element(by.buttonText('CANCEL')));
}, timeout);