package seleniumLearn1;

import java.util.Set;
import java.util.concurrent.TimeUnit; import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver; public class Liulanqi2 {
public boolean switchToWindow(String windowTitle,WebDriver driver) {
boolean flag =false;
try {
String currentHandle = driver.getWindowHandle();//返回当前窗口句柄
System.out.println("FAQ的handle是=========currentHandle======="+currentHandle); Set<String> handles = driver.getWindowHandles();//返回所有窗口句柄
System.out.println("handles应该是有3个的:==="+handles.size());
for (String string : handles) {//遍历所有handles窗口
System.out.println("handle是===="+string);
if(string.equals("currentHandle")) {//如果窗口=FAQ的句柄
System.out.println("与FAQ的handle进行对比,是则输出--------------");
continue;//继续执行
}
else {//不是FAQ的句柄
System.out.println("不是FAQ的句柄=====");
driver.switchTo().window(string);//切换窗口到对应句柄如果不是FAQ的handle
if(driver.getTitle().contains(windowTitle)) {//切换窗口后,如果页面title=给的参数是首页
flag=true;//如果切换到首页的话,第一次打开URL进来的页面,则flag=true
System.out.println("Switch to window:"+windowTitle + "successfully!! 返回最初的页面OK");
break;
}else {
continue;
}
}
}
} catch (Exception e) {
e.printStackTrace();
System.out.printf("Window:" + windowTitle + "cound not found!",e.fillInStackTrace()); } return flag;
}
public static void main(String[] args) {
System.setProperty("webdriver.chrome.driver", "E:\\\\webDriver\\\\chromedriverV2.28.exe");
WebDriver driver =new ChromeDriver();
driver.get("https://dev.bignox.com/");
String windowTitle = driver.getTitle();//获取一进来首页的title
driver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
driver.findElement(By.linkText("Home")).click();
driver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
driver.findElement(By.linkText("Blog")).click();
System.out.println("windowTitle============"+windowTitle);
Liulanqi2 l=new Liulanqi2();
l.switchToWindow(windowTitle, driver);
driver.quit();
}
}

  

selenium操作浏览器-窗口切换的更多相关文章

  1. selenium操作浏览器窗口最大化和刷新

    实际测试过程中经常遇到打开一个页面并不是全屏显示,但是却希望它能够全屏显示或者新增一条记录后需要刷新一下看能不能再列表中正常显示. 于是就有了今天的关于对浏览器窗口的最大化和刷新页面.需要说明的一点: ...

  2. 『心善渊』Selenium3.0基础 — 17、Selenium操作浏览器窗口的滚动条

    目录 1.为什么操作滚动条 2.Selenium如何操作滚动条 3.Selenium操作滚动条方法 4.操作滚动条示例 5.下拉至聚焦元素的位置 (1)实现步骤: (2)实现示例: 1.为什么操作滚动 ...

  3. [Python爬虫]使用Selenium操作浏览器订购火车票

    这个专题主要说的是Python在爬虫方面的应用,包括爬取和处理部分 [Python爬虫]使用Python爬取动态网页-腾讯动漫(Selenium) [Python爬虫]使用Python爬取静态网页-斗 ...

  4. 每次用 selenium 操作浏览器都还原了 (比如没有浏览器历史记录)

    每次用 selenium 操作浏览器都还原了 (比如没有浏览器历史记录)

  5. selenium多个窗口切换

    浏览器里面支持多窗口打开,例如这样: html里面写了: target="_blank" 造成新打开一个窗口,但是selenium不会自动跳转到新的串口,需要自己切换: # 你打开 ...

  6. Selenium:多窗口切换(获取窗口句柄handle)

    我们在操作网页的时候,点击有些页面的链接,会重新打开一个窗口,我们要在新页面上操作,就得切换窗口 比如在百度首页的登录框点击注册,会重新打开一个注册的新页面,要在新页面注册,就得先切进新页面 那我们怎 ...

  7. web自动化 -- 浏览器窗口切换

    切换浏览器窗口 示例: from time import sleep from selenium import webdriver from selenium.webdriver.support.wa ...

  8. 『心善渊』Selenium3.0基础 — 3、使用Selenium操作浏览器对象的基础API

    目录 1.导入Selenium库 2.创建浏览器对象 3.浏览器窗口大小设置 4.浏览器位置设置 5.请求访问网址 6.浏览器页面前进.后退和刷新 7.关闭浏览器 相比于高大上的各种Selenium进 ...

  9. selenium操作浏览器的前进和后退

    前进关键字:driver.forward() 后退关键字:driver.back() 测试对象:1.https://www.baidu.com/ 2.https://www.sogou.com/ 实例 ...

随机推荐

  1. STL学习笔记— —无序容器(Unordered Container)

    简单介绍 在头文件<unordered_set>和<unordered_map> 中定义 namespace std { template <typename T, ty ...

  2. Python 3.6 安装pip

    1.首先python3.4以后,pip内嵌,不过使用方法是: python -m pip install django 2.如果你觉得上面的指令太长,想用旧方法使用pip,那用以下指令安装pip即可 ...

  3. 【工具】Windows7搭建FTP服务器

    有时候需要将文件在各台电脑间拷贝,所以想建一个ftp服务器方便些,这里的设置仅为家用设置的记录日志,严谨的生产环境请参考其他文章. 创建一个专用于ftp的用户 开始 > 控制面板 > 用户 ...

  4. ubuntu 中DNAT SNAT配置实验.

    1.      目的 图1 如图1所示,有A,B两台计算机,其中A配置成普通PC,B是网关.实现由A向一个不存在的IP 发起tcp连接,并能向这个不存在的ip发送数据. 同时响应这个tcp连接的是B中 ...

  5. golang深度获取子节点

    起因 需要在树形结构里获取子树,树形结构一般是存储一维数组,数组元素里存储子节点的指针 代码 package main import ( "errors" "fmt&qu ...

  6. C语言 · 新生舞会

    算法训练 新生舞会   时间限制:1.0s   内存限制:512.0MB      问题描述 新生舞会开始了.n名新生每人有三个属性:姓名.学号.性别.其中,姓名用长度不超过20的仅由大小写字母构成的 ...

  7. C语言 · 学做菜

    算法训练 学做菜   时间限制:1.0s   内存限制:256.0MB      问题描述 涛涛立志要做新好青年,他最近在学做菜.由于技术还很生疏,他只会用鸡蛋,西红柿,鸡丁,辣酱这四种原料来做菜,我 ...

  8. JDK观察者模式和事件机制比较<转>

    原文:(六)观察者模式详解(包含观察者模式JDK的漏洞以及事件驱动模型) 作者:zuoxiaolong8810(左潇龙),转载请注明出处. 本章我们讨论一个除前面的单例以及代理模式之外,一个WEB项目 ...

  9. redis主从配置<转>

    一.Redis的Replication: 这里首先需要说明的是,在Redis中配置Master-Slave模式真是太简单了.相信在阅读完这篇Blog之后你也可以轻松做到.这里我们还是先列出一些理论性的 ...

  10. STM32F10x_ADC三通道DMA连续转换(3通道、软件单次触发)

    Ⅰ.概述 上一篇文章讲述的内容是:三通道逐次转换(单次.单通道软件触发),也就是说3条通道要三次软件触发才能完成转换,而且是通过软件读取转换数值. 本文讲述三通道DMA连续转换(3通道.软件单次触发) ...