Selenium Webdriver中如何处理浏览器弹出多个窗口的问题

// 打开网页执行操作
String url = "http://*******";
driver.get(url);
driver.manage().window().maximize();
WebElement logoElement2 = driver.findElement(By.className("loginName"));
logoElement2.click();
 
// 获取当前页面的句柄
String currentHandle = driver.getWindowHandle();
 
// 单击iTask链接
WebElement webElement = driver.findElement(By.linkText("iTask"));
webElement.click();
 
// 单击iTask之后,会打开一个新的窗口,获取所有窗口的句柄
Set<String> allHandles = driver.getWindowHandles();
 
// 对获取的所有句柄进行循环判断,把当前句柄从所有句柄中移除,剩下的就是想要获得的新窗口的句柄
Iterator<String> iter = allHandles.iterator();
String handle = null;
WebDriver driverNew = null;
while(iter.hasNext()) {
    handle = iter.next();
    if(currentHandle == handle)
        continue;
    driverNew = driver.switchTo().window(handle);
}
 
// 完成在新窗口中的操作
webElement = driverNew.findElement(By.linkText("Team Worklog"));
webElement.click();
        
webElement = driverNew.findElement(By.linkText("Range"));
webElement.click();
        
webElement = driverNew.findElement(By.name("field_Start_Date"));
webElement.clear();
webElement.sendKeys(startDay);
        
webElement = driverNew.findElement(By.name("field_End_Date"));
webElement.clear();
webElement.sendKeys(endDay);
        
webElement = driverNew.findElement(By.name("Submit"));
webElement.click();

 
// 关闭当前窗口
driverNew.close();

 

 
// 关闭浏览器
driver.switchTo().window(currentHandle);
driver.quit();

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是Selenium常见面试题及答案: 1. 什么是Selenium? 答:Selenium是一个自动化测试工具,用于测试Web应用程序的功能和用户界面。 2. Selenium有哪些组件? 答:Selenium有三个主要组件:Selenium IDE,Selenium WebDriverSelenium Grid。 3. Selenium WebDriver如何在浏览器执行测试? 答:Selenium WebDriver可以与多个浏览器(如Chrome,Firefox,IE,Safari)进行交互,并使用浏览器的原生API执行测试。 4. 你如何在Selenium WebDriver处理浏览器弹出窗口? 答:Selenium WebDriver提供了switchTo()方法,可以轻松切换到弹出窗口。使用getWindowHandles()方法可以获取所有打开窗口的句柄,然后使用switchTo()方法切换到所需的窗口。 5. 你如何在Selenium WebDriver处理iframe? 答:使用switchTo()方法选择iframe,然后可以在iframe执行测试步骤。 6. 如何在Selenium WebDriver处理下拉列表? 答:使用Select类可以轻松处理下拉列表。使用selectByVisibleText()方法可以根据可见文本选择选项,selectByValue()方法可以根据值选择选项,selectByIndex()方法可以根据索引选择选项。 7. 如何在Selenium WebDriver处理JavaScript弹出框? 答:使用switchTo()方法可以切换到JavaScript弹出框。使用alert()方法可以获取警报框的文本,使用dismiss()方法可以关闭警报框,使用accept()方法可以接受警报框。 8. 如何在Selenium WebDriver处理文件上传? 答:使用sendKeys()方法可以将文件路径作为参数传递到文件上传输入字段。 9. 如何在Selenium WebDriver处理页面滚动? 答:使用JavaScriptExecutor接口可以在Selenium WebDriver处理页面滚动。使用executeScript()方法可以使用JavaScript在页面上滚动。 10. 如何在Selenium WebDriver处理等待? 答:使用WebDriverWait类可以在Selenium WebDriver处理等待。使用until()方法可以等待特定条件的出现。例如,使用expected_conditions类可以等待元素可见,元素存在,元素的文本等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值