如何在Selenium中弹出IE安全警报

时间:2017-01-03 04:50:39

标签: selenium alert

我收到“警报数据:当您向互联网发送信息时,其他人可能会看到该信息。您要继续吗?”在运行登录脚本时。我能够捕获安全警报数据,但无法接受该警报并继续进行。

@Test
  public void f() 
  {
    driver.get("http://www.demo.guru99.com/V4/");  
    String title= driver.getTitle();
    System.out.println(title);
        WebElement element = driver.findElement(By.xpath("html/body/form/table/tbody/tr[1]/td[2]/input"));
        element.sendKeys("mngr57377");
        WebElement element1 = driver.findElement(By.xpath("html/body/form/table/tbody/tr[2]/td[2]/input"));
        element1.sendKeys("yzUdAtu");
        WebElement elementClick=driver.findElement(By.xpath("html/body/form/table/tbody/tr[3]/td[2]/input[1]"));
        elementClick.click();
        try {
            click(elementClick);
        } catch (UnhandledAlertException f) {
            try {
                Alert alert = driver.switchTo().alert();
                alert.accept();
                String alertText = alert.getText();
                System.out.println("Alert data: " + alertText);

            } catch (NoAlertPresentException e) {
                e.printStackTrace();
            }
        }

  }

1 个答案:

答案 0 :(得分:0)

根据你的代码click(elementClick);在try block下是错误的。我想你必须这样做 -

登录按钮后,单击使用以下代码处理警报 -

    WebElement element = driver.findElement(By.xpath("html/body/form/table/tbody/tr[1]/td[2]/input"));
    element.sendKeys("mngr57377");
    WebElement element1 = driver.findElement(By.xpath("html/body/form/table/tbody/tr[2]/td[2]/input"));
    element1.sendKeys("yzUdAtu");
    WebElement elementClick=driver.findElement(By.xpath("html/body/form/table/tbody/tr[3]/td[2]/input[1]"));
    elementClick.click();
    try 
    {

        Alert alert = driver.switchTo().alert();
        alert.accept();
        String alertText = alert.getText();
        System.out.println("Alert data: " + alertText);

    }
    catch (NoAlertPresentException e)
    {
         e.printStackTrace();

    }

另一件事,尽量避免使用absolute xpath而不是使用relative xpath或尝试制作自定义的xpath。