2016-08-24 116 views

回答

0
Please check with this 
import org.openqa.selenium.Alert; 
import org.openqa.selenium.By; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.firefox.FirefoxDriver; 

public class JavaScriptAlertTest { 

public static void main(String[] args) { 

    WebDriver myTestDriver = new FirefoxDriver(); 
    myTestDriver.get("...blablabla...."); 

    myTestDriver.manage().window().maximize(); 

    myTestDriver.findElement(By.xpath("//input[@value = 'alert']")).click(); 

    Alert javascriptAlert = myTestDriver.switchTo().alert(); 
    System.out.println(javascriptAlert.getText()); // Get text on alert box 
    javascriptAlert.accept(); 

    System.out.println("*************prompt******************************************"); 

    myTestDriver.findElement(By.xpath("//input[@value = 'prompt']")).click(); 

    Alert javascriptprompt = myTestDriver.switchTo().alert(); 
    javascriptprompt.sendKeys("This is Selenium Training"); 

    System.out.println(javascriptprompt.getText()); // Get text on alert box 

    javascriptprompt.accept(); 
    javascriptprompt = myTestDriver.switchTo().alert(); 

    System.out.println(javascriptprompt.getText()); // Get text on alert box 
    javascriptprompt.accept(); 

    myTestDriver.findElement(By.xpath("//input[@value = 'prompt']")).click(); 

    javascriptprompt = myTestDriver.switchTo().alert(); 

    System.out.println(javascriptprompt.getText()); // Get text on alert box 

    javascriptprompt.dismiss(); 
    javascriptprompt = myTestDriver.switchTo().alert(); 

    System.out.println(javascriptprompt.getText()); // Get text on alert box 
    javascriptprompt.accept(); 

    System.out.println("***********************************confirm dialog box****************************"); 
    myTestDriver.findElement(By.xpath("//input[@value = 'confirm']")).click(); 

    Alert javascriptconfirm = myTestDriver.switchTo().alert(); 
    javascriptconfirm.accept(); 

    javascriptconfirm = myTestDriver.switchTo().alert(); 
    System.out.println(javascriptconfirm.getText()); // Get text on alert box 
    javascriptconfirm.accept(); 

    myTestDriver.findElement(By.xpath("//input[@value = 'confirm']")).click(); 
    javascriptconfirm = myTestDriver.switchTo().alert(); 

    javascriptconfirm.dismiss(); 
    javascriptconfirm = myTestDriver.switchTo().alert(); 
    System.out.println(javascriptconfirm.getText()); // Get text on alert box 
    javascriptconfirm.accept(); 

} 
} 
Ref:https://www.seleniumeasy.com/selenium-tutorials/how-to-handle-javascript-alerts-confirmation-prompts 
http://stackoverflow.com/questions/8244723/alert-handling-in-selenium-webdriver-selenium-2-with-java 
+0

如果你想傳遞文本,那麼你也可以使用sendKeys方法 – Pradeep

0

您可以使用開關框架概念。

您可以使用此代碼切換到子窗口,然後返回到父窗口。

代碼:

String parentWindowHandler = driver.getWindowHandle(); // Store your parent window 
      String subWindowHandler = null; 

      Set<String> handles = driver.getWindowHandles(); // get all window handles 
      Iterator<String> iterator = handles.iterator(); 
      while (iterator.hasNext()){ 
       subWindowHandler = iterator.next(); 
      } 
      driver.switchTo().window(subWindowHandler); 

*****perform operations on child window****************** 

driver.switchTo().window(parentWindowHandler);//This will switch back to main page after entering username and password. 

我希望這將解決您的問題

相關問題