多测师讲解selenium ——切换窗口——打印句柄_高级讲师肖sir
(一)同一个窗口打开两个浏览器

from selenium import webdriver
from time import sleep
drvier=webdriver.Chrome()
url='http://www.baidu.com' #打开百度
drvier.get(url)
drvier.maximize_window()
sleep(2) #线程等待2秒
url='http://www.jd.com'
drvier.get(url) #打开京东(覆盖百度的窗口,在同一个窗口打开)
二、两个url打开两个窗口

from selenium import webdriver
from time import sleep
drvier=webdriver.Chrome()
url='http://www.baidu.com' #打开百度
drvier.get(url)
drvier.maximize_window()
js ='window.open("http://www.jd.com")'
drvier.execute_script(js)
三、打印title

结果:百度一下,你就知道
from selenium import webdriver
from time import sleep
drvier=webdriver.Chrome()
url='http://www.baidu.com' #打开百度
drvier.get(url)
drvier.maximize_window()
# sleep(2) #线程等待2秒
# url='http://www.jd.com'
# drvier.get(url) #打开京东(覆盖百度的窗口,在同一个窗口打开)
# drvier.maximize_window()
js ='window.open("http://www.jd.com")'
drvier.execute_script(js)
# #新开一个窗口
sleep(2)
title =drvier.title#获取到当前的窗口文本标题
print(title)#打印标题 百度一下,你就知道
(四)切换当前窗口定位

from selenium import webdriver
from time import sleep
drvier=webdriver.Chrome()
url='http://www.baidu.com' #打开百度
drvier.get(url)
drvier.maximize_window()
# sleep(2) #线程等待2秒
# url='http://www.jd.com'
# drvier.get(url) #打开京东(覆盖百度的窗口,在同一个窗口打开)
# drvier.maximize_window()
js ='window.open("http://www.jd.com")'
drvier.execute_script(js)
# #新开一个窗口
# sleep(2)
# title =drvier.title#获取到当前的窗口文本标题
# #print(title)#打印标题 百度一下,你就知道
# sleep(2)
drvier.find_element_by_id('key').send_keys('手机')
cl =drvier.find_element_by_css_selector('[class=text]')
cl.send_keys('手机')
xp=drvier.find_element_by_xpath('//*[@id="key"]').send_keys('手机')
#以上我们是定位不到内容,索引我们要切换窗口
五、切换句柄
简化版:

from selenium import webdriver
from time import sleep
drvier=webdriver.Chrome() #创建一个对象
url='http://www.baidu.com'
drvier.get(url) #打开百度
drvier.maximize_window() #创建最大化
sleep(2)
js ='window.open("http://www.jd.com")'
drvier.execute_script(js) #新开窗口打开jd
sleep(1)
headles =drvier.window_handles #获取所有窗口的句柄
drvier.switch_to.window(headles[-1])
# 通过 switch_to以句柄索引值为-1来切换-1的窗口
title1=drvier.title#获取标题
print(title1) #京东(JD.COM)-正品低价、品质保障、配送及时、轻松购物!
sleep(2)
drvier.find_element_by_id('key').send_keys('手机')
讲解版:
rom selenium import webdriver
from time import sleep
drvier=webdriver.Chrome() #创建一个对象
url='http://www.baidu.com'
drvier.get(url) #打开百度
drvier.maximize_window() #创建最大化
sleep(2)
js ='window.open("http://www.jd.com")'
drvier.execute_script(js) #新开窗口打开jd
sleep(1)
#tile =drvier.title #获取当前窗口的标题
#print(tile) #当前的title:百度一下,你就知道
# # 获取当前窗口的句柄和获取所有窗口的句柄和切换窗口
#j =drvier.current_window_handle #获取当前窗口的句柄
#print(j) #CDwindow-49F4482A3D1C0713E1A63696416AF8EE
headles =drvier.window_handles #获取所有窗口的句柄
#print(headles)
# # ['CDwindow-3B7E08122DE1340AB96EF0676CB5C6B0',
# # 'CDwindow-24A5FFE06B543E9B63C3F011041E4309']
# '''如当前的窗口超过了2个则句柄对应的窗口会发生相对应的改变(索引位置)'''
# # 通过句柄来切换窗口
drvier.switch_to.window(headles[-1])
# 通过 switch_to以句柄索引值为-1来切换-1的窗口
title1=drvier.title#获取标题
print(title1) #京东(JD.COM)-正品低价、品质保障、配送及时、轻松购物!
sleep(2)
drvier.find_element_by_id('key').send_keys('手机')

5、2
切换句柄练习题

1、先将所讲的内容进行复习
# 2、自己开三个窗口或者更多,
# 然后通过句柄的方式实现切换(理解句柄的索引改变问题)
# 3、完成以上事项的同学:
# 1、打开百度
# 2、打开京东
# 3、获取当前句柄
# 4、获取所有的句柄
# 5、通过for循环遍历来实现且到京东窗口且打印title
# '''
from selenium import webdriver
from time import sleep
driver=webdriver.Chrome()
url='http://www.baidu.com'
driver.get(url) #打开百度
driver.maximize_window()#窗口最大化
sleep(2)#线程等待2秒
#打开京东
jd='window.open("http://www.jd.com")'
driver.execute_script(jd)
sleep(2) #线程等待
dcs='window.open("http://gz.duoceshi.cn")'
driver.execute_script(dcs)
sleep(2) #线程等待
# title=driver.title #获取当前窗口的标题
# print(title) #百度的标题 百度一下,你就知道
# 获取当前窗口的句柄
hedl=driver.current_window_handle #获取当前窗口句柄
# print(hedl)
# sleep(1)
hendles=driver.window_handles#获取所有窗口句柄
# print(hendles)
for i in hendles:#遍历所有的窗口句柄
if i !=hedl: #如果当前变量的句柄不等于获取的单个句柄
driver.switch_to.window(i)
title =driver.title
print(title) #京东(JD.COM)-正品低价、品质保障、配送及时、轻松购物!
备注:
京东定位输入框

获取句柄,切换,在根据索引取窗口(0 表示第一个窗口, 1表示第二个窗口,-1表示最后一个窗口)

获取当前窗口 和 获取当前句柄



多测师讲解selenium ——切换窗口——打印句柄_高级讲师肖sir的更多相关文章
- 多测师讲解selenium—自动化测试课堂面试题总结—高级讲师肖sir
1.你有做过自动化?你用什么语言? python2.自动化中如何使用语言打开一个网址?浏览器,浏览器对应驱动,导入库,类,get,url3.在一个浏览器中打开多个窗口?open_windows dri ...
- 多测师讲解自动化测试_rf节课内容_高级讲师肖sir
*** Settings ***Library Selenium2LibraryLibrary OperatingSystem *** Variables ***${name} zhangsan@{l ...
- 多测师讲解ui自动化框架设计思想_高级讲师肖sir
UI自动化框架:UI自动化框架可以分为8个模块,conf.data.public.pageobject.testcase.runner.report.log.conf是用来储存系统环境.数据库.邮件的 ...
- 多测师讲解接口测试 _postman(下)_高级讲师肖sir
关联接口 定义:上个接口返回的参数作为下一个接口的入参 1)接口1:查询出所有的州,自治区,直辖市,省(且发送请求不需要入参) 接口url地址: http://www.webxml.com.cn/We ...
- 多测师讲解 自动化测试理论(1)_高级讲师肖sir
自动化测试理论什么是自动化测试?广义的:通过工具或程序替代或辅助人工测试的行为叫自动化测试狭义的:通过工具录制或编写脚本模拟手工测试的过程,通过回放或运行脚本执行测试用例,从而代替人工对系统的功能验证 ...
- 多测师讲解接口测试 _fiddler无法打开浏览器_高级讲师肖sir
错误现象: 打开fi'd'dler以后浏览器无法打开,关闭fiddler之后可以打开浏览器 解决方案: 1. 2. 在点击确定
- 多测师讲解接口测试 _postman(上)_高级讲师肖sir
Postman 一.Postman介绍 Postman是一个网页调试工具,也可以调试css.html Postman的操作环境 环境:Postman Mac.Windows X32.Windows X ...
- 多测师讲解自动化测试 _RF模拟鼠标悬停_高级讲师肖sir
test19 Open Browser https://www.ctrip.com/?sid=155952&allianceid=4897&ouid=index gc Maximize ...
- 多测师讲解自动化测试 _RF定位iframe框_高级讲师肖sir
Open Browser https://mail.163.com/ gc Maximize Browser Window sleep 2 #进入if框 Comment Input Text name ...
随机推荐
- 安装JDK的攻略
打开浏览器搜索JDK官网 单击Oracle下的JDK Download. 如果英语不好就直接打开浏览器自带翻译功能,根据自己的系统以及相应版本,下载对应的JDK 根据安装提示进行安装,路径自己选择. ...
- 在logback的fileNamePattern配置%i 带来的异常
我在logback的配置文件中企图这样配置: <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPol ...
- linux 安装ifconfig
一:使用yum命令下载安装wget 查看镜像中ifconfig安装包 yum search ifconfig yum install net-tools.x86_64 -y 下面按照提示一步步安装即可 ...
- kali命令大全
arch 显示机器的处理器架构(1)uname -m 显示机器的处理器架构(2)uname -r 显示正在使用的内核版本dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI)hd ...
- spring cloud 通过zuul网关去请求的时候报404的几个原因。
spring cloud 中 zuul 网关的那些坑: 1.检查你的服务是否正常启动. 2.检查你的服务是否正常注册到注册中心. 3.zuul网关的路由规则是会把你注册在注册中心的serviceId ...
- python中使用mock模块返回数据
mock是辅助单元测试的一个模块.它允许您用模拟对象替换您的系统的部分,并对它们已使用的方式进行断言. mock在python3中已经被集成到了unittest单元测试框架中,所以,可以直接使用. m ...
- oracle之三资源管理
Oracle 资源管理 12.1 为什么要使用Oracle资源管理器 传统意义上,系统的资源分配是由OS来完成的,但是对于数据库资源,OS分配资源会带来一些问题: 以Linux为例,最为突出的一个问题 ...
- 企业项目实战 .Net Core + Vue/Angular 分库分表日志系统二 | 简单的分库分表设计
教程预览 01 | 前言 02 | 简单的分库分表设计 03 | 控制反转搭配简单业务 04 | 强化设计方案 05 | 完善业务自动创建数据库 06 | 最终篇-通过AOP自动连接数据库-完成日志业 ...
- MySQL必知必会(1-12章)
第一章:了解SQL 数据库基础:(概念) 数据库软件: DBMS(数据库管理系统) 数据库: 通过DBMS创建和操纵的容器: 保存有组织的数据的容器-->通常是一个文件或者一组文件: 表: 某种 ...
- 吴恩达-机器学习+正则化regularization