无法在最后一步中单击“警报”框中的“确定”。我也试过控制弹出窗口
public class MyFirst {
public static void main(String[] args) throws NoAlertPresentException,InterruptedException {
System.setProperty("webdriver.chrome.driver", "C:\\Users\\kunal.bhaskar\\Downloads\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
String baseUrl = "https://www.goindigo.in";
driver.get(baseUrl);
driver.findElement(By.xpath("//*[@id=\"roundWay\"]/form/div[1]/ul/li[1]/input[1]")).clear();
driver.findElement(By.xpath("//*[@id=\"roundWay\"]/form/div[1]/ul/li[1]/input[1]")).sendKeys("Patna");
driver.findElement(By.xpath("//*[@id=\"roundWay\"]/form/div[1]/ul/li[2]/input[1]")).sendKeys("Bengaluru");
driver.findElement(By.xpath("//*[@id=\"roundWay\"]/form/div[1]/ul/li[3]/input")).click();
Select adult = new Select(driver.findElement(By.xpath("//*[@id=\"roundWay\"]/form/div[1]/ul/li[3]/div/div[1]/label[2]/select")));
adult.selectByVisibleText("2");
driver.findElement(By.xpath("//*[@id=\"depart-date\"]")).clear();
driver.findElement(By.xpath("//*[@id=\"depart-date\"]")).sendKeys("18 Oct 2017");
driver.findElement(By.xpath("//*[@id=\"return-date\"]")).clear();
driver.findElement(By.xpath("//*[@id=\"return-date\"]")).sendKeys("28 Oct 2017");
driver.findElement(By.xpath("//*[@id=\"roundWay\"]/form/div[1]/div/div/div/ul/li[1]/div/div[1]")).click();
driver.switchTo().alert().accept();
}
答案 0 :(得分:1)
实际上,这不是警报。这是一个模态框,这就是为什么你得到无警报的例外。
模态框的代码。
WebElement findElement = driver.findElement(By.xpath("//*[@id='globalModal']/div/div/div[3]/button"));
JavascriptExecutor jse = (JavascriptExecutor)driver;
jse.executeScript("arguments[0].click()", findElement);
在代码中写下这些行而不是driver.switchTo().alert().accept();
。
它会正常工作。
答案 1 :(得分:0)
这不是一个警示亲爱的,你可以用let arrayOfValues=['NY','IST'];
this.selectedCities = this.cities.filter(a => arrayOfValues.includes(a.value.cityCode)).map(a => a.value));
关闭它,这就是为什么会出现异常
试试这个
alert.accept()