(一)同一个窗口打开两个浏览器

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的更多相关文章

  1. 多测师讲解selenium—自动化测试课堂面试题总结—高级讲师肖sir

    1.你有做过自动化?你用什么语言? python2.自动化中如何使用语言打开一个网址?浏览器,浏览器对应驱动,导入库,类,get,url3.在一个浏览器中打开多个窗口?open_windows dri ...

  2. 多测师讲解自动化测试_rf节课内容_高级讲师肖sir

    *** Settings ***Library Selenium2LibraryLibrary OperatingSystem *** Variables ***${name} zhangsan@{l ...

  3. 多测师讲解ui自动化框架设计思想_高级讲师肖sir

    UI自动化框架:UI自动化框架可以分为8个模块,conf.data.public.pageobject.testcase.runner.report.log.conf是用来储存系统环境.数据库.邮件的 ...

  4. 多测师讲解接口测试 _postman(下)_高级讲师肖sir

    关联接口 定义:上个接口返回的参数作为下一个接口的入参 1)接口1:查询出所有的州,自治区,直辖市,省(且发送请求不需要入参) 接口url地址: http://www.webxml.com.cn/We ...

  5. 多测师讲解 自动化测试理论(1)_高级讲师肖sir

    自动化测试理论什么是自动化测试?广义的:通过工具或程序替代或辅助人工测试的行为叫自动化测试狭义的:通过工具录制或编写脚本模拟手工测试的过程,通过回放或运行脚本执行测试用例,从而代替人工对系统的功能验证 ...

  6. 多测师讲解接口测试 _fiddler无法打开浏览器_高级讲师肖sir

    错误现象: 打开fi'd'dler以后浏览器无法打开,关闭fiddler之后可以打开浏览器 解决方案: 1. 2. 在点击确定

  7. 多测师讲解接口测试 _postman(上)_高级讲师肖sir

    Postman 一.Postman介绍 Postman是一个网页调试工具,也可以调试css.html Postman的操作环境 环境:Postman Mac.Windows X32.Windows X ...

  8. 多测师讲解自动化测试 _RF模拟鼠标悬停_高级讲师肖sir

    test19 Open Browser https://www.ctrip.com/?sid=155952&allianceid=4897&ouid=index gc Maximize ...

  9. 多测师讲解自动化测试 _RF定位iframe框_高级讲师肖sir

    Open Browser https://mail.163.com/ gc Maximize Browser Window sleep 2 #进入if框 Comment Input Text name ...

随机推荐

  1. 用Maven给一个Maven工程打包,使用阿里云镜像解决mvn clean package出错的问题,使用plugin解决没有主清单属性的问题

    本来在STS里做了一个极简Maven工程,内中只有一个Main方法的Java类,然后用新装的Maven3.6.3给它打包. 结果,Maven罢工,输出如下: C:\personal\programs\ ...

  2. Redis windows版安装测试

    1.下载 下载地址是 https://github.com/microsoftarchive/redis/releases/tag/win-3.2.100 ,我选择的是Redis-x64-3.2.10 ...

  3. flume读取日志文件并存储到HDFS

    配置hadoop环境 配置flume环境 配置flume文件 D:\Soft\apache-flume-1.8.0-bin\conf 将 flume-conf.properties.template ...

  4. 如何编写一个简单的Linux驱动(二)——设备操作集file_operations

    前期知识 如何编写一个简单的Linux驱动(一)--驱动的基本框架 前言 在上一篇文章中,我们学习了驱动的基本框架.这一章,我们会在上一章代码的基础上,继续对驱动的框架进行完善.要下载上一篇文章的全部 ...

  5. pytest测试框架 -- skip跳过执行测试用例

      跳过执行测试用例 1.@pytest.mark.skip(reason=" ") -- 跳过执行测试函数 可传入一个非必须参数reason表示原因 import pytest@ ...

  6. centos7新增用户并授权root权限、非root用户启动tomcat程序

    一.centos7新增用户并授权root权限 cat /etc/redhat-release查看centos版本号 1.禁用root账户登录 vim /etc/ssh/sshd_config 找到这一 ...

  7. 内存管理初始化源码5:free_area_init_nodes

    start_kernel ——> setup_arch ——> arch_mem_init ——> |——> bootmem_init  |——> device_tree ...

  8. Ajax每隔2秒自动请求服务端刷新页面

    1. window.onload = function () {automatic(); } 2. function automatic(){ //每隔两秒刷新一次页面setTimeout(autom ...

  9. vue简单案例_动态添加删除用户数据

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  10. 北京数途科技有限公司--EAM MAXIMO交通行业

    北京数途科技有限公司--EAM MAXIMO交通行业 一.行业背景: 自从1863年世界上第一条地铁在英国伦敦建成通车,标志着城市轨道交通方式的诞生.在不同国家.不同发展阶段内,凡经济发达的 国家与城 ...