IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 如何用python+selenium的web自动化控制浏览器的常用属性和方法 -> 正文阅读

[Python知识库]如何用python+selenium的web自动化控制浏览器的常用属性和方法

目录

前言

设置浏览器大小

前进/后退/刷新

获取浏览器相关信息

标签页切换

控制滚动条

总结

重点:配套学习资料和视频教学


前言

? 本文主要介绍selenium控制浏览器一些常用属性和方法,包括控制窗口大小、页面前进后退、页面刷新、打开或关闭标签页、滚动条等等

设置浏览器大小

python
<span style="background-color:#282c34"><span style="color:#abb2bf"><span style="color:#f92672">import</span> time
<span style="color:#f92672">from</span> selenium <span style="color:#f92672">import</span> webdriver


<span style="color:#b18eb1"><em># 浏览器实例化</em></span>
driver = webdriver.Chrome()

 <span style="color:#b18eb1"><em># 把浏览器窗口最大化</em></span>
driver.maximize_window()  

 <span style="color:#b18eb1"><em># 把浏览器窗口最小化</em></span>
driver.minimize_window()

<span style="color:#b18eb1"><em># 设置浏览器窗口大小,长、宽作为参数传递进去,单位:像素</em></span>
driver.set_window_size(<span style="color:#d19a66">500</span>,<span style="color:#d19a66">800</span>)

<span style="color:#b18eb1"><em># 获取浏览器大小</em></span>
size = driver.get_window_size()
<span style="color:#e6c07b">print</span>(size)

time.sleep(<span style="color:#d19a66">5</span>)
driver.quit()</span></span>

前进/后退/刷新

python
<span style="background-color:#282c34"><span style="color:#abb2bf"><span style="color:#f92672">import</span> time
<span style="color:#f92672">from</span> selenium <span style="color:#f92672">import</span> webdriver


<span style="color:#b18eb1"><em># 浏览器实例化</em></span>
driver = webdriver.Chrome()
driver.get(<span style="color:#98c379">"http://www.baidu.com"</span>)
driver.find_element_by_xpath(<span style="color:#98c379">"//input[@id='kw']"</span>).send_keys(<span style="color:#98c379">"selenium"</span>)
driver.find_element_by_xpath(<span style="color:#98c379">"//input[@id='su']"</span>).click()
time.sleep(<span style="color:#d19a66">2</span>)

<span style="color:#b18eb1"><em># 后退</em></span>
driver.back()
time.sleep(<span style="color:#d19a66">2</span>)
<span style="color:#b18eb1"><em># 前进</em></span>
driver.forward()
time.sleep(<span style="color:#d19a66">2</span>)
<span style="color:#b18eb1"><em># 刷新</em></span>
driver.refresh()
time.sleep(<span style="color:#d19a66">2</span>)

time.sleep(<span style="color:#d19a66">5</span>)
driver.quit()</span></span>

获取浏览器相关信息

python
<span style="background-color:#282c34"><span style="color:#abb2bf"><span style="color:#f92672">from</span> selenium <span style="color:#f92672">import</span> webdriver


driver = webdriver.Chrome()
driver.get(<span style="color:#98c379">"https://www.baidu.com"</span>)

<span style="color:#b18eb1"><em># 获取浏览器名称</em></span>
<span style="color:#e6c07b">print</span>(driver.name)

<span style="color:#b18eb1"><em># 获取网页的 URL 地址</em></span>
<span style="color:#e6c07b">print</span>(driver.current_url)

<span style="color:#b18eb1"><em># 获取网页的标题</em></span>
<span style="color:#e6c07b">print</span>(driver.title)

<span style="color:#b18eb1"><em># 获取网页的源代码</em></span>
<span style="color:#e6c07b">print</span>(driver.page_source)</span></span>

标签页切换

? 在页面中点击某个链接之后,可能就会打开一个新的标签页,Chromedriver驱动是不会主动帮我们去切换。多标签页出现后,如果要做下一步操作,需要先切换浏览器标签页。所有切换动作都是用switch_to语句,标签页切换关键代码:switch_to.window(标签页句柄)

python
<span style="background-color:#282c34"><span style="color:#abb2bf"><span style="color:#f92672">import</span> time
<span style="color:#f92672">from</span> selenium <span style="color:#f92672">import</span> webdriver


<span style="color:#b18eb1"><em># 启动Chromedriver,并与Chromedriver开启会话</em></span>
driver = webdriver.Chrome()
driver.implicitly_wait(<span style="color:#d19a66">10</span>)
driver.get(<span style="color:#98c379">"http://www.baidu.com"</span>)
driver.find_element_by_id(<span style="color:#98c379">'kw'</span>).send_keys(<span style="color:#98c379">"selenium"</span>)
driver.find_element_by_id(<span style="color:#98c379">'su'</span>).click()

<span style="color:#b18eb1"><em># 获取当前标签页句柄</em></span>
wins = driver.current_window_handle
<span style="color:#e6c07b">print</span>(<span style="color:#98c379">'当前标签页:'</span>, wins)

<span style="color:#b18eb1"><em># 点击其中一个百度结果,出现一个新标签页</em></span>
driver.find_element_by_xpath(<span style="color:#98c379">'//h3[@class="t c-gap-bottom-small"]//a'</span>).click()
time.sleep(<span style="color:#d19a66">2</span>)

<span style="color:#b18eb1"><em># 获取当前所有标签页句柄</em></span>
wins = driver.window_handles    <span style="color:#b18eb1"><em># 返回的是一个列表,按照标签页打开的顺序</em></span>
<span style="color:#e6c07b">print</span>(<span style="color:#98c379">'所有标签页1:'</span>, wins)

<span style="color:#b18eb1"><em># 切换到第一个标签页</em></span>
driver.switch_to.window(wins[<span style="color:#d19a66">0</span>])
time.sleep(<span style="color:#d19a66">2</span>)

<span style="color:#b18eb1"><em># 打开新的标签页</em></span>
js = <span style="color:#98c379">'window.open("https://www.cnblogs.com/miki-peng/")'</span>
driver.execute_script(js)
time.sleep(<span style="color:#d19a66">2</span>)

<span style="color:#b18eb1"><em># 再次获取当前所有标签页句柄</em></span>
wins = driver.window_handles
<span style="color:#e6c07b">print</span>(<span style="color:#98c379">'所有标签页2:'</span>, wins)

<span style="color:#b18eb1"><em># 关闭当前标签页</em></span>
driver.close()

time.sleep(<span style="color:#d19a66">3</span>)
driver.quit()  <span style="color:#b18eb1"><em># 关闭浏览器,kill掉chromedriver进程</em></span></span></span>

??小思考

? 由于selenium中没有提供打开标签页的方法,但它是支持执行js语句的噢,因此可以通过js来操作。在实际应用中我们打开新的标签页是通过鼠标点击浏览器的"+"号,除了这种方法,还可以怎么打开新标签页呢,思考一下

控制滚动条

? 一般元素定位,元素如果不在浏览器的可视位置(即可见只是不在可视位置),会自动把元素滚动到可视位置,但也有不会自己滚动的(比较少),那我们就可以用selenium的ele.location_once_scrolled_into_view()就可以滚动到某个元素处,也就是滚动直到这个元素出现在屏幕里。除了这种方式以外,也可以用js来滚动窗口。

? selenium提供了execute_script方法来执行js语句,几种滚动方式如下:

? 1、移动元素element对象,与当前窗口的底部对齐

python
<span style="background-color:#282c34"><span style="color:#abb2bf">ele = driver.find_element_by_xpath(<span style="color:#98c379">'//h3[@class="t c-gap-bottom-small"]//a'</span>)
driver.execute_script(<span style="color:#98c379">"arguments[0].scrollIntoView(false);"</span>,ele)</span></span>

? 2、移动元素element对象,与当前窗口的顶部对齐

python
<span style="background-color:#282c34"><span style="color:#abb2bf">driver.execute_script(<span style="color:#98c379">"arguments[0].scrollIntoView();"</span>,ele)</span></span>

? 3、把页面移动到底部

python
<span style="background-color:#282c34"><span style="color:#abb2bf">driver.execute_script(<span style="color:#98c379">"window.scrollTo(0,document.body.scrollHeight)"</span>)</span></span>

? 4、把页面移动到顶部

<span style="background-color:#282c34"><span style="color:#abb2bf">driver.execute_script(<span style="color:#98c379">"window.scrollTo(document.body.scrollHeight,0)"</span>)</span></span>

? ?

总结

感谢每一个认真阅读我文章的人!!!

如果下面这些资料用得到的话可以直接拿走:

1、自学开发或者测试必备的完整项目源码与环境

2、测试工作中所有模板(测试计划、测试用例、测试报告等)

3、软件测试经典面试题

4、Python/Java自动化测试实战.pdf

5、Jmeter/postman接口测试全套视频获取

6、Python学习路线图

? ? ? ? ? ? ? ? ? ? ?

重点:配套学习资料和视频教学

那么在这里我也精心准备了上述大纲的详细资料包含:电子书,简历模块,各种工作模板,面试宝典,自学项目等。如下,需要的点击下方链接加入群聊免费领取

? ? ? ? ? ? ? ? ? ? ? ??

? ? ? ? ? ? ? ? ??

python
  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-10-17 12:28:59  更:2022-10-17 12:31:54 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/26 2:00:52-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计