selenium webdriver窗口切换(上)
selenium webdriver窗口切换,有时候在做自动化的时候需要打开很多很多的页面,
当在操作不同的页面的时候需要切换窗口,下面是如何切换到前后页面窗口的操作:
package test20161206; import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.interactions.Actions; public class chuangkouqiehuan20161206 { public static void main(String[] args) throws InterruptedException {
// TODO Auto-generated method stub
System.setProperty("webdriver.chrome.driver", "C:\\Training\\Automation\\Software\\drivers\\chromedriver_win32\\chromedriver.exe");
WebDriver driver=new ChromeDriver();
driver.get("https://www.hao123.com/");
Thread.sleep(5000); driver.findElement(By.xpath("//*[@id='box-famoussite']/div/div[2]/span[2]/a")).click();
Thread.sleep(5000);
System.out.println("进入58同城"); // String[] handles=new String[driver.getWindowHandles().size()];
// driver.getWindowHandles().toArray(handles);
// driver.switchTo().window(handles[1]);
for (String handle:driver.getWindowHandles())
{
driver.switchTo().window(handle);
}
Thread.sleep(1000);
driver.findElement(By.xpath("//*[@id='nav']/li[7]/a")).click();
Thread.sleep(5000);
System.out.println("进入安居客"); // String[] handles1=new String[driver.getWindowHandles().size()];
// driver.getWindowHandles().toArray(handles1);
// driver.switchTo().window(handles1[2]);
for (String handle:driver.getWindowHandles())
{
driver.switchTo().window(handle);
}
driver.findElement(By.xpath("//*[@id='header']/div[3]/div[2]/a[1]")).click();
Thread.sleep(5000);
System.out.println("进入我要推广");
for (String handle:driver.getWindowHandles())
{
driver.switchTo().window(handle);
}
driver.findElement(By.xpath("//*[@id='footer']/ul[1]/li[11]/a")).click();
Thread.sleep(5000);
System.out.println("进入房贷计算器"); String[] handles=new String[driver.getWindowHandles().size()];
driver.getWindowHandles().toArray(handles);
driver.switchTo().window(handles[2]); Thread.sleep(1000);
driver.findElement(By.xpath("//*[@id='search-esf']")).sendKeys("上海浦东新区张江高科");
System.out.println("回到第三个窗口进行操作");
Thread.sleep(2000); Actions action=new Actions(driver);
// action.keyDown(Keys.CONTROL).keyDown(Keys.SHIFT).sendKeys(Keys.TAB).perform();
WebElement element=driver.findElement(By.xpath("//*[@id='search-esf']"));
action.click(element).keyDown(Keys.CONTROL).sendKeys("a").keyUp(Keys.CONTROL).perform();
action.keyDown(Keys.CONTROL).sendKeys("c").keyUp(Keys.CONTROL).perform();
action.click(element).keyDown(Keys.CONTROL).sendKeys("v").keyUp(Keys.CONTROL).perform();
System.out.println("在输入框里Ctrl a,Ctrl c,Ctrl v"); }
}
下面是却换到单个页面的前后页面,即:页面的前进和后退
driver.navigate().back();
点击当前页面后退按钮
driver.navigate().forward();
点击当前页面的前进按钮
driver.navigate().refresh();
点击当前页面的刷新按钮
除外---------------------------------------------------------------------------------------------------
多窗体的情况使用driver.switchTo().window()
这是一个Sample:
Set<String> handles = driver.getWindowHandles();
handles.remove(driver.getWindowHandle());//去掉当前句柄
driver.switchTo().window(handles.iterator().next());
selenium webdriver窗口切换(上)的更多相关文章
- selenium webdriver窗口切换(下)
多窗口切换有时候需要在不同的窗口切换,从而操作不同的窗口上的元素.在selenium1.0 中这个问题比较难处理.但WebDriver 提供了switcTo.window()方法可以切换到任意的窗口. ...
- Python+Selenium学习--窗口切换及操作元素
场景 有时候我们在测试一个web 应用时会出现多个浏览器窗口的情况,在selenium1.0 中这个问题比较难处理.webdriver 提供了相关相方法可以很轻松的在多个窗口之间切换并操作不同窗口上的 ...
- Python3 Selenium多窗口切换
Python3 Selenium多窗口切换 以腾讯网(http://www.qq.com/)为例,打开腾讯网,点击新闻,打开腾讯新闻,点击新闻中第一个新闻链接. 在WebDriver中封装了获取当前窗 ...
- python3 + selenium 之窗口切换
窗口切换 此代码来源学习后对淘宝操作实践记录: 以下代码在Chrome61和IE11上正常运行,Firefox5.7上运行存在一些问题须改进,应该是火狐不兼容差link_text部分和循环经常报错,在 ...
- Selenium 多窗口切换
我们在操作网页的时候,点击有些页面的链接,会重新打开一个窗口,我们要在新页面上操作,就得切换窗口 比如在百度首页的登录框点击注册,会重新打开一个注册的新页面,要在新页面注册,就得先切进新页面 那我们怎 ...
- selenium多窗口切换定位
from selenium import webdriverimport unittest,time,refrom selenium.webdriver.common.keys import Keys ...
- python之selenium多窗口切换
前提: 在页面操作过程中有时候点击某个链接会弹出新的窗口,这就需要主机切换到新打开的窗口上.WebDriver提供了switch_to.window()方法,可以实现在不同的窗口之间切换. 内容: 以 ...
- selenium 多窗口切换(windows)
在web应用中,常常会遇见点击某个链接会弹出一个新的窗口,或者是相互关联的web应用 ,这样要去操作新窗口中的元素,这时就需要主机切换到新窗口进行操作..WebDriver 提供了switchTo() ...
- Selenium多窗口切换代码
# #!/usr/bin/python3 # -*- coding: utf-8 -*- # @Time : 2020/7/31 16:05 # @Author : Gengwu # @FileNam ...
随机推荐
- GOOGLE CODE ANDROID 开源项目 集合
转:http://blog.csdn.net/dellheng/article/details/7163333 1. ZXing http://code.google.com/p/zx ...
- 有关xml中的xmlns
1. xmlns "xmlns"是XHTML namespace的缩写,叫做"名字空间"声明.名字空间是什么作用呢?我的理解是:由于xml允许你自己定义自己的标 ...
- ESlint全局变量报错
场景: 在main.js下申明了全局变量: /* eslint no-undef: "error" */ window.vm = new Vue({ el: '#app', rou ...
- php-config
php-config php-config 是一个简单的命令行脚本用于获取所安装的 PHP 配置的信息. 在编译扩展时,如果安装有多个 PHP 版本,可以在配置时用 --with-php-config ...
- [工具] f.lux – 随时间改变屏幕色温护眼
f.lux 是一款根据时间变化来改变屏幕色温的软件.让你在深夜也能感受到太阳的温暖,顺便还有助于睡眠. 在 f.lux 里,首先设置一个适合你的变化色温范围,白天的色温控制在 6500K 以下,晚上的 ...
- Elasticsearch 自定义映射
尽管在很多情况下基本域数据类型 已经够用,但你经常需要为单独域自定义映射 ,特别是字符串域.自定义映射允许你执行下面的操作: 全文字符串域和精确值字符串域的区别 使用特定语言分析器 优化域以适应部分匹 ...
- Elasticsearch 索引、更新、删除文档
一.Elasticsearch 索引(新建)一个文档的命令: curl XPUT ' http://localhost:9200/test_es_order_index/test_es_order_t ...
- 基于pandas python sklearn 的美团某商家的评论分类(文本分类)
美团店铺评价语言处理以及分类(NLP) 第一篇 数据分析部分 第二篇 可视化部分, 本文是该系列第三篇,文本分类 主要用到的包有jieba,sklearn,pandas,本篇博文主要先用的是词袋模型( ...
- 你不可缺少的技能——Markdown编辑
Markdown简介 Markdown是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式.请不要被「标记」.「语言」所迷惑,Markdown 的语法十分 ...
- 专访|HPE测试中心总监徐盛:测试新思维-DevOps,持续测试,更敏捷,更快速
2016年7月22日,「HPE&msup软件技术开放日」将在上海浦东新区,张江高科技园区纳贤路799号科荣大厦小楼2楼举办,msup携手HPE揭秘全球测试中心背后的12条技术实践. 徐盛:HP ...