selenium操作浏览器-窗口切换
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操作浏览器-窗口切换的更多相关文章
- selenium操作浏览器窗口最大化和刷新
实际测试过程中经常遇到打开一个页面并不是全屏显示,但是却希望它能够全屏显示或者新增一条记录后需要刷新一下看能不能再列表中正常显示. 于是就有了今天的关于对浏览器窗口的最大化和刷新页面.需要说明的一点: ...
- 『心善渊』Selenium3.0基础 — 17、Selenium操作浏览器窗口的滚动条
目录 1.为什么操作滚动条 2.Selenium如何操作滚动条 3.Selenium操作滚动条方法 4.操作滚动条示例 5.下拉至聚焦元素的位置 (1)实现步骤: (2)实现示例: 1.为什么操作滚动 ...
- [Python爬虫]使用Selenium操作浏览器订购火车票
这个专题主要说的是Python在爬虫方面的应用,包括爬取和处理部分 [Python爬虫]使用Python爬取动态网页-腾讯动漫(Selenium) [Python爬虫]使用Python爬取静态网页-斗 ...
- 每次用 selenium 操作浏览器都还原了 (比如没有浏览器历史记录)
每次用 selenium 操作浏览器都还原了 (比如没有浏览器历史记录)
- selenium多个窗口切换
浏览器里面支持多窗口打开,例如这样: html里面写了: target="_blank" 造成新打开一个窗口,但是selenium不会自动跳转到新的串口,需要自己切换: # 你打开 ...
- Selenium:多窗口切换(获取窗口句柄handle)
我们在操作网页的时候,点击有些页面的链接,会重新打开一个窗口,我们要在新页面上操作,就得切换窗口 比如在百度首页的登录框点击注册,会重新打开一个注册的新页面,要在新页面注册,就得先切进新页面 那我们怎 ...
- web自动化 -- 浏览器窗口切换
切换浏览器窗口 示例: from time import sleep from selenium import webdriver from selenium.webdriver.support.wa ...
- 『心善渊』Selenium3.0基础 — 3、使用Selenium操作浏览器对象的基础API
目录 1.导入Selenium库 2.创建浏览器对象 3.浏览器窗口大小设置 4.浏览器位置设置 5.请求访问网址 6.浏览器页面前进.后退和刷新 7.关闭浏览器 相比于高大上的各种Selenium进 ...
- selenium操作浏览器的前进和后退
前进关键字:driver.forward() 后退关键字:driver.back() 测试对象:1.https://www.baidu.com/ 2.https://www.sogou.com/ 实例 ...
随机推荐
- Android性能优化系列之apk瘦身
Android性能优化系列之布局优化 Android性能优化系列之内存优化 为什么APK要瘦身.APK越大,在下载安装过程中.他们耗费的流量会越多,安装等待时间也会越长:对于产品本身,意味着下载转化率 ...
- nginx upstream 常用的几种调度方式
nginx可以根据客户IP进行负载均衡,在upstream里设置ip_hash,以可以对同一个C类地址段的客户端选择同一个后端服务器,除非那个后端服务器宕了才会换一个.C类地址:C类地址第1字节.第2 ...
- Fluent UDF【1】:简介
前面基本完成了动网格专题的发布,不过还是有一些内容并没有更新进去,比如说in-cylinder.接触检测.2.5D网格重构等.不过这些都是小技巧,写起来挺麻烦,以后有时间再通过案例视频的方式讲解好了. ...
- vs2015配置OpenGL开发环境
先吐槽下,不知道微软怎么整的,从win7开始,OpenGL的头文件更改到windows SDK中,不安装就不能用. 更搞笑的是,在win10下,vs2015安装还报win sdk安装失败,这典型的自己 ...
- Java运行时动态加载类之ClassLoader
https://blog.csdn.net/fjssharpsword/article/details/64922083 *************************************** ...
- JAVA实现MD5加密算法(使用MessageDigest)
http://blog.csdn.net/ymc0329/article/details/6738711 *********************************************** ...
- nexus 手动更改 私服包
替换 linux 私服下的 nexus 目录
- C语言字符串格式化显示
符号 作用 ────────────────────────── %d 十进制有符号整数 %i 输 ...
- golang包管理的取巧
常见的golang的包管理工具 glide 使用yaml做配置,语义化版本管理,可以设置镜像,下载x系列库,但是x系列库被第三方库依赖时会出现下载失败. dep 亲儿子,语义化版本管理,无法解决墙 v ...
- [转]Handsontable对单元格的操作
原文地址:http://blog.csdn.net/mafan121/article/details/46119905 1.自动填充单元格数据 fillHandle:true/false //当 ...