《selenium2 python 自动化测试实战》(9)——切换窗口
有时候我们点击按钮后页面会跳转到新的窗口,我们需要到新的窗口中去进行接下来的操作,这时候就需要切换窗口的操作,我们根据句柄(handle)来操作窗口之间的切换,看代码:
# coding: utf-8
from selenium import webdriver
from time import sleep
driver = webdriver.Firefox()
driver.get("http://www.jrj.com.cn/")
driver.find_element_by_xpath("html/body/div[11]/div[1]/div/div[1]/p/a[5]").click()
current_handle = driver.current_window_handle
all_handles = driver.window_handles
for i in all_handles:
if current_handle != i:
driver.switch_to.window(i)
sleep(2)
driver.find_element_by_xpath("html/body/div[10]/div[1]/div/dl/dt[1]/div[1]/p/a[2]").click()
句柄的操作主要有两个:
- 第一个:获取当前窗口句柄:
driver.current_window_handle - 第二个:获取全部窗口句柄:
driver.window_handles - 切换句柄的操作为:
driver.switch_to.window()这里我们通过循环所有句柄,当判断到不是当前窗口句柄的时候,就进行切换句柄(窗口)的操作。
微信公众号搜索“自动化测试实战”或扫描下方二维码添加关注~~~

《selenium2 python 自动化测试实战》(9)——切换窗口的更多相关文章
- selenium2 python自动化测试实战(回归测试)
selenium2 python自动化测试实战 最近接手商城的项目,针对后台测试,功能比较简单,但是流程比较繁多,涉及到前后台的交叉测试.在对整个项目进行第一轮测试完成之后,考虑以后回归测试任务比较重 ...
- 船长带你看书——《selenium2 python 自动化测试实战》(1)
有很多selenium的教程,你没有从头看,当你看的时候已经很难跟上作者的节奏了.现在,你有机会再从头学一次了.从今天开始,船长会从最基本的知识开始,和大家一起学selenium.能不能跟着一起就看大 ...
- Selenium2+Python自动化测试实战
本人在网上查找了很多做自动化的教程和实例,偶然的一个机会接触到了selenium,觉得非常好用.后来就在网上查阅各种selenium的教程,但是网上的东西真的是太多了,以至于很多东西参考完后无法系统的 ...
- 船长带你看书——《selenium2 python 自动化测试实战》(2)浏览器操作
浏览器操作 # coding: utf-8 from selenium import webdriver from time import sleep driver = webdriver.Firef ...
- 《selenium2 python 自动化测试实战》(17)——几个cookies操作
之前我们已经学过利用cookies跳过验证码登录了,那时候我们用的方法是add_cookie()方法,这里再给大家介绍两个,一般情况下我们用不到,了解一下就可以,而且如果真的用到的时候百度也很快的: ...
- 《selenium2 python 自动化测试实战》(10)——下拉框和alert
# coding: utf-8 from selenium import webdriverfrom selenium.webdriver.common.action_chains import Ac ...
- 《selenium2 python 自动化测试实战》(7)——定位一组对象
定位一组对象 定位一组对象——find_elements_by_...(),注意,这里是elements,复数.返回的结果是一个列表,我们取值的时候就要用列表取值的方式来获得自己想要的元素.需要注意的 ...
- 《selenium2 python 自动化测试实战》(4)——鼠标事件
鼠标事件包含在ActionChains类中,导入时只需要: from selenium.webdriver.common.action_chains import ActionChains 导入类即可 ...
- 《selenium2 python 自动化测试实战》(21)——unittest单元测试框架解析
unittest是展开自动化测试的基础——这个框架很重要! 我们先自己写一个测试类: 1.被测试类 Widthget.py: # coding: utf-8 class Widthget: de ...
随机推荐
- DNS和Bind配置指南
/////////////////////////////目录//////////////////////////////////////一.DNS原理相关二.使用bind搭建最简单的DNS服务器三. ...
- 深入理解AUC
https://tracholar.github.io/machine-learning/2018/01/26/auc.html 我觉得作者写的很不错
- tensorflow wide deep 介绍
https://blog.csdn.net/heyc861221/article/details/80131369 https://blog.csdn.net/heyc861221/article/d ...
- 关于hugepages 3.txt
关于hugepages 3.txt --//有一段时间我一直强调安装oracle一定要配置hugepage,因为现在的服务器内存越来越大,如果还使用4K的页面表,如果内存表占用内存巨大, --//特别 ...
- Javascript中的void
原来void是将其后的字面量当元表达式执行,并永远返回undefined.同时undefined不是关键词.. 由于JS表达式偏啰嗦,于是最近便开始采用Coffeescript来减轻负担.举个栗子,当 ...
- SpringIOC源码分析总结
大致的加载过程: spring ioc容器的加载,大体上经过以下几个过程: 资源文件定位.解析.注册.实例化 1.资源文件定位:主要发生在ApplicationContext中,由于applicati ...
- SPOJ-394-ACODE - Alphacode / dp
ACODE - Alphacode #dynamic-programming Alice and Bob need to send secret messages to each other and ...
- wii 入门之路--fatt
wii 入门之路--fatt system menu:系统界面,开机进入后,显示很多应用,4.1用IOS60. Channel:理解为界面中的软件应用和游戏. IOS:IOS(Input Output ...
- es6环境中,export与import使用方法
前言 参考自阮一峰大神的教程:http://es6.ruanyifeng.com/?search=export&x=6&y=5#docs/module#export-命令 声明:如有问 ...
- C++复习12.程序内存管理
程序内存管理 20131006 一个程序在运行期间的内存是如何的对编写程序至关重要,之前整理的C++内存管理的知识和Java程序内存管理的知识.今天我们系统的整理一下程序的内存. 1.一个程序的内存有 ...