【问题标题】:Not able to inspect elements on alert box/pop ups using firebug无法使用萤火虫检查警报框/弹出窗口上的元素
【发布时间】:2015-10-15 08:57:36
【问题描述】:

我正在尝试学习 selenium 并使用 firebug 来检查页面上的元素。但是,每当有任何弹出消息或警报消息时,我都无法检查它,因为它不允许我单击检查元素而不单击弹出窗口上的确定。 我需要自动单击 OK 按钮,但无法识别对象属性。

【问题讨论】:

    标签: selenium selenium-webdriver firebug


    【解决方案1】:

    实际上你不能为 Alerts 做检查元素,所以你可以通过以下方式处理这些警报:

                //WAIT UNTIL ALERT OPENS AND THEN CLICK ON OK/ACCEPT
                WebDriverWait wait = new WebDriverWait(driver, 30);
                wait.until(ExpectedConditions.alertIsPresent());
                Alert alert = driver.switchTo().alert();
                alert.accept(); //ACCEPT ACTION
    
                //WAIT UNTIL ALERT OPENS AND THEN CLICK ON CANCEL/REJECT
                WebDriverWait wait = new WebDriverWait(driver, 30);
                wait.until(ExpectedConditions.alertIsPresent());
                Alert alert = driver.switchTo().alert();
                alert.dismiss(); //REJECT ACTION
    

    上面我正在使用 explicit wait 它将等待警报直到 30 秒。然后我切换到警报框,最后只是接受/拒绝那个警报动作。

    【讨论】:

      【解决方案2】:

      你不能检查浏览器警报,我做了一些可爱的课程来处理浏览器警报 像这样

      import org.openqa.selenium.Alert;
      import org.openqa.selenium.UnhandledAlertException;
      import org.openqa.selenium.WebDriver;
      
      /**
       *
       * this class for all methods we are used to handle browser alert.
       */
      public class BrowserAlertHelper {
      
          // this is method to check if there any browser alert.
          public static boolean isDialogPresent(WebDriver driver) {
              try {
                  driver.getTitle();
                  return false;
              } catch (UnhandledAlertException e) {
                  // Modal dialog showed
                  return true;
              }
          }
      
          //this is method to accept browser alert.
          public static void acceptBrowserAlert(WebDriver driver) {
              Alert alert = driver.switchTo().alert();
              alert.accept();
          }
      
          //this is method to decline browser alert.
          public static void declineBrowserAlert(WebDriver driver) {
              Alert alert = driver.switchTo().alert();
              alert.dismiss();
          }
      
          // get alert text
          public static String getBrowserAlertText(WebDriver driver){
              try {
                  Alert alert = driver.switchTo().alert();
                  String alertText = alert.getText();
                  return alertText;
              } catch (Exception e) {
                  System.out.println("no browser alert showing");
              }
              return null;
          }
      }
      

      只需调用所需的方法并将 webdriver 作为参数发送给您

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-15
        • 2011-05-04
        • 1970-01-01
        相关资源
        最近更新 更多