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 ...
随机推荐
- css案例 - mask遮罩层的华丽写法
mask遮罩蒙层使用通常的写法的bug 通常写法pug .mask 通常写法css .mask{ position: absolute; top: 0; right: 0; bottom: 0; le ...
- Storm启动流程分析
1. 客户端运行storm nimbus时,会调用storm的python脚本,该脚本中为每个命令编写一个方法,每个方法都可以生成一条相应的java命令. 命令格式如下:java -server xx ...
- wps 批量调整图片大小 宏
Sub 批量调整图片大小() ' ' 批量修改图片 Macro ' 宏由 zxz 录制,时间: 2014/10/29 '批量调整图片大小,避免图片太大显示不完全 '循环图片集合 For Each iS ...
- Elasticsearch修改template的mapping并迁移
找到原始模板并修改 找到要修改的原始索引对应的模板(最好当初创建时就设计好便于修改) #例如原来索引是my_es_index_v1,那么我们创建 一个别名,使用POST 方法 curl -XPOST ...
- browsersync即时刷新页面
Browsersync能让浏览器实时.快速响应您的文件更改(html.js.css.sass.less等)并自动刷新页面 官网: http://browsersync.cn/ 多个浏览器.多个设备间来 ...
- Installed .NET Framework 4.5 Ajax POST IIS hang
去年我已写过一篇关于安装.NET Framework 4.5后特定场景Ajax POST的挂起问题 => http://www.cnblogs.com/junchu25/archive/2012 ...
- window上安装pymysql
date: 2018-11-26 18:54:04 安装: cmd: pip install pymysql 验证: cmd: python >>import pymysql 不报错即 ...
- NET中的设计模式---单件模式
如众所知,单件模式做为<Gof 23中设计模式>之一,其意图仅允许单件类的一个实例存在(扩展单件模式不在此文范围内),并提供全局的访问方法.UML类图如下. http://csharpin ...
- mysql概要(十四)(一)索引
1.索引是对数据库数据建立目录加快了查询速度.索引分为哈希索引和二叉树索引 (大数据量转移,如果表中带有大量字段索引,进行数据导入时,建议先去掉索引导入数据再统一加入索引,减少索引计算量) 2.索引原 ...
- HTML中块级元素与内联元素有什么区别 ?
块级元素:默认宽度是100%(继承自父元素),如果块对象没有采用“float:left”或“float:right;”的样式,相邻的两个块对象就会分排在不同的两行上.例如,div, p, h1, fo ...