WebDriver如何切换到新打开的窗口中
2014-06-16 11:06
567 查看
在WebDriver中经常会遇到点击某个元素后打开一个新的窗口,而下一步的操作要在新窗口中进行。
那么如何切换到新窗口中呢,方式可能有多种,这里只记录一下我的操作方式。
那么如何切换到新窗口中呢,方式可能有多种,这里只记录一下我的操作方式。
<span style="font-family:Courier New;font-size:12px;">package com.test; import java.util.ArrayList; import java.util.Set; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.support.ui.ExpectedCondition; import org.openqa.selenium.support.ui.WebDriverWait; import org.testng.annotations.AfterTest; import org.testng.annotations.BeforeTest; import org.testng.annotations.Test; public class SwithWindow { WebDriver driver = null; ArrayList<String> list = new ArrayList<String>(); @BeforeTest public void beforeTest() { System.setProperty("webdriver.chrome.driver", "./lib/driver/chromedriver.exe"); driver = new ChromeDriver(); } @Test public void test3() throws InterruptedException { driver.get("file:///D:/demo.html"); String oriWin = driver.getWindowHandle(); System.out.println("原始窗口为:"+oriWin); list.add(oriWin); driver.findElement(By.xpath("//div[@id='open']/a")).click(); Thread.sleep(1000); Set<String> handles = driver.getWindowHandles(); for(String handle : handles) { if(list.indexOf(handle) == -1) { WebDriverWait wait = new WebDriverWait(driver, 3); wait.until(new ExceptWindow(handle)); System.out.println(handle); list.add(handle); } } System.out.println("已经切换到了"+ driver.getWindowHandle()); } @AfterTest(alwaysRun = true) public void afterTest() { driver.quit(); } static class ExceptWindow implements ExpectedCondition<WebDriver> { private String id; public ExceptWindow(String id) { this.id = id; } @Override public WebDriver apply(WebDriver d) { return d.switchTo().window(id); } } } </span>
相关文章推荐
- selenium WebDriver之切换到链接打开的新浏览器窗口
- 切换标签及webdriver如何获得弹出窗口
- Web Driver 自动化测试-窗口间的切换
- selenium webdriver窗口切换(上)
- WebDriver中在多个浏览器窗口切换
- webdriver实现窗口切换
- Selenium_WebDriver登录模拟鼠标移动切换窗口等操作练习(cssSelector初练手)_Java
- 如何在同一窗口打开多个终端并实现快捷键切换
- 20171017学习笔记Selenium 2 第四章WebDriver API 4.8定位一组元素4.9多表单切换4.10多窗口切换
- webdriver实现2个或两个以上窗口间切换的方法
- WebDriver切换浏览器窗口
- webdriver切换窗口
- Selenium Webdriver中如何处理浏览器弹出多个窗口的问题
- 如何在使用 RemoteWebDriver 打开网页的同时获取 Http 状态码
- Java+Selenium3方法篇21-webdriver处理浏览器多窗口切换
- 解决Selenium Webdriver执行测试时,每个测试方法都打开一个浏览器窗口的问题
- WebDriver(Selenium2) 根据新窗口title切换窗口
- webdriver 窗口切换
- selenium webdriver学习(六)------------如何得到弹出窗口
- webdriver获取当前最新打开的windows窗口_10_5