【问题标题】:How to click OK in alert box using protractor如何使用量角器在警报框中单击确定
【发布时间】:2015-07-28 04:49:49
【问题描述】:

我正在使用 AngularJS,我想删除一个链接,在这种情况下,会出现一个警告框来确认删除。

我正在尝试使用量角器进行 e2e 测试,如何在警告框中确认?

我试过了:

browser.switchTo().alert().accept()

但它似乎不起作用。

量角器中是否有处理警报框的规定?

【问题讨论】:

    标签: javascript angularjs testing selenium-webdriver protractor


    【解决方案1】:

    试试

    browser.driver.get('URL');
    browser.switchTo().alert().accept();
    

    browser.ignoreSynchronization = true
    browser.get('URL');
    browser.switchTo().alert().accept();
    

    或:browser.switchTo().alert() not working in protractor

    【讨论】:

    • 我仍然收到错误“UnexpectedAlertOpenError:意外警报打开”
    • @PrateekChoudhury 你找到解决方案了吗?
    • 不要使用ignoreSynchronization。当前版本需要browser.waitForAngularEnabled(false)
    【解决方案2】:

    Wait for alert to become present:

    var EC = protractor.ExpectedConditions;
    browser.wait(EC.alertIsPresent(), 5000, "Alert is not getting present :(")
    

    【讨论】:

      【解决方案3】:

      设置一个等待警报出现的承诺:

      function getAlertAndClose(element) {
          return element.click().then(function (alertText) {
              //Wait for alert to pop up
              browser.wait(function () {
                  return browser.switchTo().alert().then(
                      function () {return true;},
                      function () {return false;}
                  );
              }, 3000); // Wait timeout
      
              // Test alert is what you expect
              var popupAlert = browser.switchTo().alert();
              alertText = popupAlert.getText();
              expect(alertText).toMatch('Are you sure you want to delete this?');
      
              // Close alert
              popupAlert.dismiss();
          })
      }
      
      var saveButton = $('.saveBtn');
      getAlertAndClose(saveButton);
      

      【讨论】:

        【解决方案4】:

        这会很好:

        await browser.switchTo().alert().accept();
        

        【讨论】:

          【解决方案5】:

          这个东西很好用,我试过了


           await browser.switchTo().alert().accept();
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2020-09-03
            • 1970-01-01
            • 2013-08-29
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多