Selenium InternetExplorer 11 - Превосходное оповещение - текст пуст во втором оповещении - PullRequest
0 голосов
/ 11 января 2019

Привет (извините за мой английский),

У меня следующая проблема с использованием Selenium WebDriver с IE 11. Когда я пытаюсь перехватить текст оповещения, мне удается получить первый текст в первом оповещении. Как только я принимаю первое предупреждение, отображается второе предупреждение, но текст остается пустым, хотя я могу принять его. Я действительно не понимаю эту проблему. Можете ли вы помочь мне, пожалуйста?

Вот мой код:

    public class AlertDemo {

    static WebDriver driver;
    static Wait<WebDriver> wait;

    static String driverPath = 
      "C:\\Users\\Acer\\Downloads\\IEDriverServer_Win32_2.53.1\\";

     public static void main(String[] args) throws 
 NoAlertPresentException, 
     InterruptedException {
        System.out.println("*******************");
        System.out.println("Lancement INTERNET EXPLORER pour 
  tester la popup");
        System.setProperty("webdriver.ie.driver", driverPath + 
  "IEDriverServer.exe");
        driver = new InternetExplorerDriver();

        driver.manage().window().maximize();

        // Alert Message handling

  driver.get("http://demo.guru99.com/test/delete_customer.php");

        driver.findElement(By.name("cusid")).sendKeys("53920");
        driver.findElement(By.name("submit")).submit();

        // Switching to Alert
        try {
            WebDriverWait wait = new WebDriverWait(driver, 
  2);

  wait.until(ExpectedConditions.alertIsPresent());
            Alert alert = driver.switchTo().alert();

            // Capturing alert message.    
            String alertMessage = 
     driver.switchTo().alert().getText();

            // Displaying alert message     
            System.out.println(alertMessage);

            // Accepting alert
            System.out.println("On accepte OK");
            alert.accept();

            Thread.sleep(500);
            //Pour le message en retour
            /*wait = new WebDriverWait(driver, 3);

          wait.until(ExpectedConditions.alertIsPresent());*/



            Alert alert2 = driver.switchTo().alert();
            System.out.println("TEXTE " + 
                     alert2.getText());
            System.out.println("TEXTE2 " + 
                             alert.getText());
            Thread.sleep(5000);
            if (alert2 == null) {

                System.err.println("Pas de popup !!");
            } else {
                System.out.println("OK la popup pour le 
  retour n'est pas nulle");
                Thread.sleep(2000);

                if 
                (!"".equals(driver.switchTo().alert().getText())) {

                    System.out.println(" Le texte 
     de la popup suivante est  " + driver.switchTo().alert().getText());
                    alert2.accept();
                } else {
                    System.err.println("Erreur: on 
  arrive pas à retrouver le texte");
                    System.out.println("Je vais 
   cliquer OK");
                    alert2.accept();
                }
            }

        } catch (NoAlertPresentException e) {
            e.printStackTrace();
            System.err.println("Pas trouvé d'alert");

        }
    }


}

Цель этого - получить текст String, содержащийся во втором предупреждении.

1 Ответ

0 голосов
/ 11 января 2019

Когда вы принимаете первое предупреждение, второе предупреждение приходит с флажком, который говорит Msgstr " Не позволяйте этой странице создавать больше сообщений ". В драйвере Internet Explorer как-то это мешает его прочитать. В других браузерах, таких как Chrome, проблем нет.

Чтобы решить эту проблему, вам просто нужно добавить сайт в trusted sites в настройках Internet Explorer. Затем вы можете получить текст второго предупреждения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...