2015-05-13 54 views
0

我想自动化一些报告。当点击某个元素时,它会打开弹出式对话窗口,但我不会从中获取访问元素。因为代码将在父窗口运行,它不能进入​​新打开的弹出对话框窗口,当我关闭浏览器时出现错误,但在控制台中不会收到任何消息。如何使用硒webdriver自动弹出对话窗口

我用下面的代码:

driver.findElement(By.id("gvWS_ctl01_ImageButton1")).click(); \\after click on this button, I won't get an access an element of popup 
dialog window and code will be running at this statement only 

driver.switchTo().frame("Weather Upload");   
driver.switchTo().activeElement();   
driver.findElement(By.id("WeatherUploadData1_btnUpload")).click(); 

回答

0

U可以访问弹出窗口的使用警报功能,下面是示例代码如何做到这一点。

Alert prompt = driver.switchTo().alert(); 

    // Get message in Alert pop up 
    message = prompt.getText(); 
    System.out.println("Prompt pop up message :- " + message); 

    // Force the program to wait to view the dialog box 
    try{Thread.sleep(4000);}catch(Exception e){System.out.println(e.toString());} 

    // Type value in prompt dialog box 
    prompt.sendKeys("Akshay Kumar"); 

    // Force the program to wait to view the dialog box 
    try{Thread.sleep(4000);}catch(Exception e){System.out.println(e.toString());} 

    // Click on Ok button 
    prompt.accept(); 

请让我知道这是否可行!

+1

你不知道如果弹出一个警告或HTML页面中选择任何元素之前切换到弹出,运应明确规定 – Dude

0

您需要从弹出

String parentWindow = driver.getWindowHandle(); 
Set<String> windowHandles = driver.getWindowHandles(); 
Iterator<String> iterator = windowHandles.iterator(); 
while (iterator.hasNext()) { 
    String handle = iterator.next(); 
    if (!handle.contains(parentWindow)) { 
     // Switch to popup and close it 
     driver.switchTo().window(handle); 
     // Perform required action in popup 
    } 
} 
// Switching back to parent window 
driver.switchTo().window(parentWindow); 
相关问题