Selenium-窗口跳转
2016-12-20 14:27
232 查看
@Test
public void testMail() throws Exception {
driver.get(baseUrl);
String mainHandle=driver.getWindowHandle(); //取得登录前的窗口句柄
driver.findElement(By.cssSelector("div#idInputLine>input#idInput")).clear();
driver.findElement(By.cssSelector("div#idInputLine>input#idInput")).sendKeys("lihongbin_vip");
driver.findElement(By.id("pwdInput")).clear();
driver.findElement(By.id("pwdInput")).sendKeys("Aa11111111");
driver.findElement(By.id("loginBtn")).click();
Thread.sleep(5000);
//登录成功,跳转到首页面
Set<String> set = driver.getWindowHandles(); //创建set集合,即句柄数组
Iterator<String> handles = set.iterator(); //迭代器取得所有set集合内容
while (handles.hasNext()) { //是否还存在句柄
String sonHandle = handles.next(); //循环取得各个元素值
if (!sonHandle.equals(mainHandle)) //“登录后的取得的所有句柄”与“登录之前取得的句柄”进行对比,如果不同则执行窗口跳转
{
driver.switchTo().window(sonHandle);
}
}
String loginC=driver.getPageSource();
System.out.println("登录后:");
System.out.println(loginC);
System.out.println("输出完成");
注标红的部分:从登录前需要取得窗口句柄一次,登录后取得所有句柄并对比,如不相同则跳转到登录后的句柄窗口中。
简单的方法用下面的也可以:
//Switch to new window opened
for(String winHandle : driver.getWindowHandles()){
driver.switchTo().window(winHandle);
}
public void testMail() throws Exception {
driver.get(baseUrl);
String mainHandle=driver.getWindowHandle(); //取得登录前的窗口句柄
driver.findElement(By.cssSelector("div#idInputLine>input#idInput")).clear();
driver.findElement(By.cssSelector("div#idInputLine>input#idInput")).sendKeys("lihongbin_vip");
driver.findElement(By.id("pwdInput")).clear();
driver.findElement(By.id("pwdInput")).sendKeys("Aa11111111");
driver.findElement(By.id("loginBtn")).click();
Thread.sleep(5000);
//登录成功,跳转到首页面
Set<String> set = driver.getWindowHandles(); //创建set集合,即句柄数组
Iterator<String> handles = set.iterator(); //迭代器取得所有set集合内容
while (handles.hasNext()) { //是否还存在句柄
String sonHandle = handles.next(); //循环取得各个元素值
if (!sonHandle.equals(mainHandle)) //“登录后的取得的所有句柄”与“登录之前取得的句柄”进行对比,如果不同则执行窗口跳转
{
driver.switchTo().window(sonHandle);
}
}
String loginC=driver.getPageSource();
System.out.println("登录后:");
System.out.println(loginC);
System.out.println("输出完成");
注标红的部分:从登录前需要取得窗口句柄一次,登录后取得所有句柄并对比,如不相同则跳转到登录后的句柄窗口中。
简单的方法用下面的也可以:
//Switch to new window opened
for(String winHandle : driver.getWindowHandles()){
driver.switchTo().window(winHandle);
}
相关文章推荐
- 使用selenium+python;在页面A点击一个按钮跳转到页面B,页面A没有关闭,浏览器打开了一个B,切换窗口定位页面B的元素
- Selenium 处理跳转窗口
- Javascript跳转页面和打开新窗口等方法
- winform间的传值并linklabel动态窗口跳转
- 解决selenium驱动Firefox跳转页慢慢慢的问题
- js页面跳转和js打开新窗口
- 【解决】showModalDialog模态窗口,使用JS跳转连接,IE弹出新窗口
- winform登陆后关闭登录窗口跳转到主窗体
- android(自动窗口跳转)-13
- 关于窗口跳转,一个很好的例子
- windows forms 窗口跳转
- selenium多个窗口操作及切换
- js关闭模态窗口刷新父页面或跳转页面
- js 模态窗口 关闭刷新父窗口或跳转页面
- Python+Selenium 自动化测试浏览器窗口最大化报错
- Jquery实现倒计时跳转到指定页面或关闭窗口
- iframe中的超链接跳转到包含该iframe的父窗口中
- selenium多窗口切换(windows)
- selenium截取当前窗口,并保存为图片
- selenium选择弹出窗口