警报 - Selenium

时间:2017-09-26 10:49:22

标签: java selenium

无法在最后一步中单击“警报”框中的“确定”。我也试过控制弹出窗口

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(); 

}

2 个答案:

答案 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()