就在前几天,我已经回答了类似的问题,所以它仍然很新鲜。您的代码失败的原因是,如果在处理代码时未显示警报,则该警告通常会失败。
值得庆幸的是 ,来自Selenium WebDriver的家伙们已经等待了它。对于您的代码,这样做很简单:
String alertText = "";WebDriverWait wait = new WebDriverWait(driver, 5);// This will wait for a maximum of 5 seconds, everytime wait is useddriver.findElement(By.xpath("//button[text() = "Edit"]")).click();//causes page to alert() somethingwait.until(ExpectedConditions.alertIsPresent());// Before you try to switch to the so given alert, he needs to be present.alert alert = driver.switchTo().alert();alertText = alert.getText();alert.accept();return alertText;您可以找到所有的API
ExpectedConditions
在这里,如果你想这个方法后面的代码在这里。
此代码还解决了问题,因为关闭警报后无法返回alert.getText(),因此我为您存储了一个变量。



