【发布时间】:2019-01-12 00:39:08
【问题描述】:
你好(请原谅我的英语),
在 IE 11 中使用 Selenium WebDriver 时遇到以下问题。 当我尝试捕获警报文本时,我设法在第一个警报上获取第一个文本。 一旦我接受第一个警报,就会显示第二个警报,但文本为空,尽管我可以接受。 我真的不明白这个问题。 你能帮帮我吗?
这是我的代码:
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");
}
}
}
这样做的目的是获取第二个警报中包含的字符串文本。
【问题讨论】:
标签: java selenium selenium-webdriver internet-explorer-11