python selenium-webdriver 标签页切换(十五)
测试过程中有时候会遇到点击某个按钮或者链接会弹出新的窗口,这时候我们的操作的页面还保持着最初打开页面,但是此时我们需要操作新打开的页面上的功能,这个时候我们需要切换一下标签页 。
其实页面的切换与frame的切换比较相识,一种切换时本页面内frame的操作,而标签页面是多页面的操作,道理很相似。下面讲解下操作页面标签会涉及到那些方法。
- driver.current_window_handle #获取当前窗口的句柄
- driver.window_handles #获取所有窗口句柄
- driver.switch_to_window(windowName) #切换窗口的句柄
窗口的切换比较容易,所以我们通过代码详细了解下页面如何切换
import time
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('https://www.baidu.com')
driver.maximize_window()
driver.find_element_by_id('kw').send_keys(u'梦雨情殇') #搜索“梦雨情殇的博客”
now_handle = driver.current_window_handle #获取当前窗口的句柄
print(now_handle) #打印当前窗口的句柄
print(driver.title) #获取打开页面的标题
driver.find_element_by_id('su').click()
time.sleep(2)
driver.find_element_by_xpath('//*[@id="1"]/h3/a').click() #点击第一条查询的数据
all_handles = driver.window_handles #获取到当前所有的句柄,所有的句柄存放在列表当中
print(all_handles) #打印句柄
'''获取非最初打开页面的句柄'''
for handles in all_handles:
if now_handle != handles:
driver.switch_to_window(handles)
print(driver.title) #获取切换后的标题
time.sleep(3)
driver.quit()
效果:

从例子中我们看到无论我们打开几个页面,但是默认的句柄依然保持在最初打开的页面,如果想要操作后面的页面的时候我们首先需要获取到当前所有的打开页面的句柄,然后在遍历选择你需要的句柄,打开标签页顺序也就是列表存放的index顺序,然后我们按照索引选择,最后在切换到对应的页面。最重要的是操作完成对应的页面一定要切换回最初的标签页,然后通过最初的页面进行切换,这边避免最后自己也不知道在操作那个页面,这个是自己的一点的经验吧。
python selenium-webdriver 标签页切换(十五)的更多相关文章
- python selenium webdriver入门基本操作
python selenium webdriver入门基本操作 未经作者允许,禁止转载! from selenium import webdriver import time driver=webdr ...
- Python Selenium Webdriver常用方法总结
Python Selenium Webdriver常用方法总结 常用方法函数 加载浏览器驱动: webdriver.Firefox() 打开页面:get() 关闭浏览器:quit() 最大化窗口: m ...
- Android之ActionBar、Tabs、Fragment、ViewPager实现标签页切换并缓存页面
感觉 Android 到处都是坑,每个地方都要把人折腾半天. 今天来简单说说 Android之ActionBar.Tabs.Fragment.ViewPager 实现标签页切换并缓存页面 关于他们的介 ...
- Python+Selenium+webdriver环境搭建(windows)以及相关资源下载链接
今天记录一下测试小菜鸟alter在测试入门的一点关于python+Selenium+webdriver环境搭建的经历以及资源分享.欢迎交流学习,批评指正. 一.Python的下载与安装 1.pytho ...
- 在Bootstrap开发中解决Tab标签页切换图表显示问题
在做响应式页面的时候,往往需要考虑更多尺寸设备的界面兼容性,一般不能写死像素,以便能够使得界面元素能够根据设备的不同进行动态调整,但往往有时候还是碰到一些问题,如Tab标签第一页面正常显示,但是切换其 ...
- JavaScript 实现 标签页 切换效果
JavaScript 实现 标签页 切换效果 版权声明:未经授权,严禁分享! 构建主体界面 HTML 代码 <h1>实现标签页的切换效果</h1> <ul id=&quo ...
- JS实现标签页切换效果
本文实例为大家分享了JS标签页切换的具体代码,供大家参考,具体内容如下 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 ...
- Python+Selenium WebDriver API:浏览器及元素的常用函数及变量整理总结
由于网页自动化要操作浏览器以及浏览器页面元素,这里笔者就将浏览器及页面元素常用的函数及变量整理总结一下,以供读者在编写网页自动化测试时查阅. from selenium import webdrive ...
- Python + Selenium WebDriver Api 知识回顾
一直再用 Selenium WebDriver 但是用的都比较零散,也没有做过总结,今天借此机会,整理一下,方便大家使用时查阅 webDriver 的属性 ['CONTEXT_CHROME', 'C ...
随机推荐
- python基础题型一
一.执行Python脚本的两种方式 #python name.py Python解析器 #chmod +x name.py 二.简述位.字节的关系 1Byte=8bit 三.简述ascii.uni ...
- jar安装
安装sdk jar 安装到本地 mvn install:install-file -Dfile=F:\workspace\api-cookbook\java\src\main\lib\sdk-1.10 ...
- Android大作业 --音乐播放器
1.项目成员(本次作业主要对上一次的音乐播放器进行完善) 韦家城 学号:1600802026 班级:161 博客:https://www.cnblogs.com/ln9969cc/ 邓乾尧 学号:1 ...
- 性能测试-3.Fiddler进行弱网测试
fiddler模拟限速的原理(原文地址) 我们可以通过fiddler来模拟限速,因为fiddler本来就是个代理,它提供了客户端请求前和服务器响应前的回调接口,我们可以在这些接口里 面自定义一些逻辑. ...
- 获取Map的key和value的两种方法
//使用迭代器,获取key; /*Iterator<String> iter = map.keySet().iterator(); while(iter.hasNext()){ Strin ...
- spring boot项目,application.properties配置文件下中文乱码解决方案
转自:https://blog.csdn.net/qq_40408534/article/details/79831807 如以上,application.properties文件下中文乱码.发生乱码 ...
- jQuery的位置信息
<head> <meta charset="UTF-8"> <title>jquery的位置信息</title> <style ...
- fixed不能罩住下面的内容
fix的优先级并不是最高的,所以要设置z-index,比它下面的元素高就能遮住了
- document.write中输出html标签用法
输出HTML标签,只需将标签写入双引号: 示例:在网页中输出<p>革命还在继续</p> document.write("<p style='border:1px ...
- PHP5和PHP7的安装、PHP和apache的整合!
1.PHP5的安装: 下载: wget -c http://cn2.php.net/distributions/php-5.6.36.tar.gz (php5) wget -c http://cn2 ...