Selenium系列(二) - 控制浏览器操作的详细解读
如果你还想从头学起Selenium,可以看看这个系列的文章哦!
https://www.cnblogs.com/poloyy/category/1680176.html
其次,如果你不懂前端基础知识,需要自己去补充哦,博主暂时没有总结(虽然我也会,所以我学selenium就不用复习前端了哈哈哈...)
控制浏览器有哪些操作?
- 最大化、最小化浏览器
- 控制、获取浏览器大小
- 获取当前标签页title、url
- 前进、后退、刷新
- 执行js语句
- 打开、关闭新标签页
- 滚动页面
点击右边目录即可跳转哦! -------------->>>>>>>>>>
最大化、最小化浏览器
from time import sleep
from selenium import webdriver # 加载浏览器驱动
driver = webdriver.Chrome("../resources/chromedriver.exe") # 访问网址
driver.get("https://www.baidu.com") # 最大化浏览器
driver.maximize_window() sleep(2) # 最小化浏览器
driver.minimize_window()
控制、获取浏览器大小
# 加载浏览器驱动
driver = webdriver.Chrome("../resources/chromedriver.exe") # 访问网址
driver.get("https://www.baidu.com") # 获取浏览器大小
size = driver.get_window_size()
print(f"浏览器大小:{size}") sleep(2) # 设置浏览器大小
driver.set_window_size(1200, 1000)
执行结果
浏览器大小:{'width': 1936, 'height': 1056}
知识点
get_window_size() 返回的是字典
获取当前标签页title、url
# 加载浏览器驱动
driver = webdriver.Chrome("../resources/chromedriver.exe") # 访问网址
driver.get("https://www.baidu.com") # 获取当前标签页的title
print(f"标签页title:{driver.title}") # 获取当前标签页的url
print(f"标签页url:{driver.current_url}") # 获取当前浏览器的名称(不常用)
print(f"标签页name:{driver.name}") # 获取当前页面完整的HTML代码
(不常用)
print(f"标签页page_source:{driver.page_source}")
执行结果
标签页title:百度一下,你就知道
标签页url:https://www.baidu.com/
标签页name:chrome
标签页page_source:<html><head>...</head></html>
前进、后退、刷新
# 前进
driver.forward() # 后退
driver.back() # 刷新
driver.refresh()
执行js语句
# 同步执行js
js='console.log(2)'
driver.execute_script(js) # 异步执行js
driver.execute_async_script("alert(2)")
打开、关闭新标签页
# 打开新的标签页
js = 'window.open("https://www.baidu.com/")'
driver.execute_script(js) # 获取当前标签页句柄
print(driver.current_window_handle) # 获取浏览器所有标签页句柄
handles = driver.window_handles
print(handles) # 切换标签页
driver.switch_to.window(handles[-1]) # 关闭当前标签页
driver.close()
执行结果
CDwindow-24C58D8D81CCC95D5D55E887402B7E0A
['CDwindow-24C58D8D81CCC95D5D55E887402B7E0A', 'CDwindow-04C35D93CD4A04351BAC1CFFA36378CA', 'CDwindow-AC59AC67423FB8463AF0C534C7A47098']
知识点
- 打开新的标签页只能通过 js 来操作
- 可以根据标签页的句柄来切换标签页
- 操作标签页的好处就是,可以只打开一个浏览器但可以访问多个不同的网页;这在后续集成单元测试框架(unittest、pytest)的时候会有很大的帮助
滚动页面
# 滚动随机高度
js = "var q=document.documentElement.scrollTop=" + random.randint(100, 999)
driver.execute_script(js)
知识点
这里暂时只介绍js的滚动方法,滚动其实有几种高级方法的,后续有空补上
Selenium系列(二) - 控制浏览器操作的详细解读的更多相关文章
- Selenium3 + Python3自动化测试系列三——控制浏览器操作
控制浏览器操作 控制浏览器窗口大小 在测试过程中,我们在打开浏览器后,根据需求可自定义调整浏览器的尺寸大小.WebDriver提供了set_window_size()方法来设置浏览器的大小. 如果页面 ...
- selenium控制浏览器操作
selenium控制浏览器操作 控制浏览器有哪些操作? 控制页面大小 前进.后退 刷新 自动输入.提交 ........ 控制页面大小,实例: # -*- coding:utf-8 -*- from ...
- 孤荷凌寒自学python第八十五天配置selenium并进行模拟浏览器操作1
孤荷凌寒自学python第八十五天配置selenium并进行模拟浏览器操作1 (完整学习过程屏幕记录视频地址在文末) 要模拟进行浏览器操作,只用requests是不行的,因此今天了解到有专门的解决方案 ...
- selenium基础(控制浏览器)
python基础(控制浏览器) 控制浏览器 控制浏览器窗口大小 设置浏览器屏幕大小方法:set_window_size() 浏览器最大化:maximize_window() 浏览器最小化:minimi ...
- selenium(三)浏览器操作
from time import sleep from selenium import webdriver #定义浏览器是firefox driver=webdriver.Firefox() #页面打 ...
- Windows系统下Memcached缓存系列二:CouchbaseClient(c#客户端)的详细试用,单例模式
在上一篇文章里面 ( Windows系统下Memcached缓存系列一:Couchbase(服务器端)和CouchbaseClient(c#客户端)的安装教程 ),我们介绍了服务器端的安装和客户端的安 ...
- UI自动化测试(二)浏览器操作及对元素的定位方法(xpath定位和css定位详解)
Selenium下的Webdriver工具支持FireFox(geckodriver). IE(InternetExplorerDriver).Chrome(ChromeDriver). Opera( ...
- Elasticsearch学习系列二(基础操作)
本文将分为3块讲解Es的基础操作.分别为:索引(index).映射(mapping).文档(document). 索引操作 创建索引库 语法: PUT /索引名称{ "settings&qu ...
- bert系列二:《BERT》论文解读
论文<BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding> 以下陆续介绍ber ...
随机推荐
- Python建立web静态服务器
原文地址:http://www.bugingcode.com/blog/python_html_web_server.html python作为工具,提供了很多好用的命令,比如有时候突然需要建立一个解 ...
- Java 去掉字符串中的重复数据
有一组字符串比如 北京,北京,上海,上海,上海,武汉-------->要得到 北京,上海,武汉 怎么去掉里面重复的字符串? function DelRepetStr(String ...
- 遗弃.Forsaken.2015.BluRay.720p.x264.DTS-beAst
◎译 名 遗弃/落日孤影(台)/赎罪◎片 名 Forsaken◎年 代 2015◎产 地 加拿大/法国/美国◎类 别 剧情/西部◎语 言 英语◎上映日期 2015-09-16(多伦多电影节)/2016 ...
- “一亿”的教训:一次Google信箱诈骗是如何得手的?
网络诈骗是指以非法占有为目的,利用互联网采用虚构事实或者隐瞒真相的方法,骗取数额较大的公私财物的行为.一年比一年网络诈骗越来越高手段,可以说是日益猖獗.在这里提醒一次各位朋友一定要注意自己的网络安全. ...
- 7-45 jmu-python-涨工资 (10 分)
输入一组工资数据,写入列表.对于小于5000的工资,涨1.5倍.并输出涨后的工资数据. 输入格式: 数据之间空格隔开 输出格式: 涨工资后的数据,空格隔开.尾部 不带空格. 输入样例: 3000 40 ...
- node--非阻塞式I/O,单线程,异步,事件驱动
1.单线程 不同于其他的后盾语言,node是单线程的,大大节约服务器开支 node不为每个客户创建一个新的线程,仅使用一个线程.通过非阻塞I/O以及 事件驱动机制,使其宏观上看是并发的,可以处理高并发 ...
- 前端每日实战:152# 视频演示如何用纯 CSS 创作一个圆点错觉效果
效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/gBwzKR 可交互视频 此视频是可 ...
- Python基础-求两个字符串最长公共前轴
最长公共前缀,输入两个字符串,如果存在公共前缀,求出最长的前缀,如果没有输出no.如“distance”和“discuss”的最长公共前缀是“dis”. s1 = input('请输入第1个字符串-- ...
- 最适合初学者的一篇 Ribbon 教程
什么是 Ribbon Ribbon 是一个基于 HTTP 和 TCP 的 客服端负载均衡工具,它是基于 Netflix Ribbon 实现的. 它不像 Spring Cloud 服务注册中心.配置中心 ...
- docker 升级后启动异常处理
docker升级后启动时提示如下错误: Unable to create at Docker.Core.Pipe.NamedPipeClient.d__5.MoveNext() --- End of ...