Python Selenium基本用法

简介: Python Selenium基本用法

Selenium 作为一款 Web 自动化测试框架,提供了诸多操作浏览器的方法,本节对其中的常用方法做详细介绍。

定位节点

Selenium 提供了 8 种定位单个节点的方法,如下所示:

image.png

假设下面代码某个页面的代码片段,如下所示:

image.png

下面使用表格中提供的方法定位 input 输出框。如下所示:

image.png

通过 a 标签内的文本内容定位节点,如下所示: image.png

示例如下:

image.png

如果您想定位一组元素,方法如下所示:

image.png


定位一组元素的方法与定位单个元素类似,唯一的区别就是 element 后面多了一个 s(表示复数),因此上述方法的返回值是一个列表,您可以使用 for 循环拿到所有的元素节点。

控制浏览器

Selenium 可以操控浏览器的窗口大小、刷新页面,以及控制浏览器的前进、后退等

1) 设置浏览器窗口大小、位置

image.png

2) 控制网页前进、后退、刷新页面

image.png

WebDriver常用方法

上文中介绍了如何定位元素,以及如何设置浏览的大小、位置。 定位元素节点只是第一步, 定位之后还需要对这个元素进行操作, 比如单击按钮,或者在输入框输入文本 , 下面介绍 WebDriver 中的最常用方法:

image.png

示例如下:

image.png


除了上述方法外, WebDriver 还有一些常用属性,如下所示:

image.png

from selenium import webdriver driver = webdriver.Chrome()

 

获取HTML结构源码

driver.page_source #在源码中查找指定的字符串 driver.page_source.find(‘字符串’)

 

返回百度页面底部备案信息

text = driver.find_element_by_id(“cp”).text print(text)

 

获取输入框的尺寸

size = driver.find_element_by_id(‘kw’).size print(size)

image.png

{‘width’: 500, ‘height’: 22}

image.png

from selenium.webdriver.common.action_chains import ActionChains

image.png

from selenium import webdriver #导入 ActionChains 类 from selenium.webdriver.common.action_chains import ActionChains

 

driver = webdriver.Chrome() driver.get(“c.cainiao.net”)

 

通过xpath表达式定位到要悬停的元素

above = driver.find_element_by_xpath(‘//ul[@id=“ad-link-top”]/li[1]’)

 

对定位到的元素执行鼠标悬停操作

ActionChains(driver).move_to_element(above).perform()

image.png

from selenium.webdriver.common.keys import Keys

 

输入框输入内容

driver.find_element_by_id(“kw”).send_keys(“百度中文网H”)

 

删除多输入的一个H

driver.find_element_by_id(“kw”).send_keys(Keys.BACK_SPACE) #单击“百度”一下查找 driver.find_element_by_id(“su”).click() time.sleep(3) driver.quit()

image.png

输入空格键 + “Python教程”

driver.find_element_by_id(“kw”).send_keys(Keys.SPACE) driver.find_element_by_id(“kw”).send_keys(“Python教程”)

 

ctrl+a 全选输入框内容

driver.find_element_by_id(“kw”).send_keys(Keys.CONTROL, ‘a’)

 

ctrl+x 剪切输入框内容

driver.find_element_by_id(“kw”).send_keys(Keys.CONTROL, ‘x’)

 

ctrl+v 粘贴内容到输入框

driver.find_element_by_id(“kw”).send_keys(Keys.CONTROL, ‘v’)

 

使用回车键来代替单击操作click

driver.find_element_by_id(“su”).send_keys(Keys.ENTER)

 

执行JS脚本

WebDriver 提供了 execute_script() 方法来执行 JavaScript 代码,比如控制浏览器的滚动条。示例如下:

image.png

目录
相关文章
|
24天前
|
Web App开发 前端开发 JavaScript
探索Python科学计算的边界:利用Selenium进行Web应用性能测试与优化
【10月更文挑战第6天】随着互联网技术的发展,Web应用程序已经成为人们日常生活和工作中不可或缺的一部分。这些应用不仅需要提供丰富的功能,还必须具备良好的性能表现以保证用户体验。性能测试是确保Web应用能够快速响应用户请求并处理大量并发访问的关键步骤之一。本文将探讨如何使用Python结合Selenium来进行Web应用的性能测试,并通过实际代码示例展示如何识别瓶颈及优化应用。
80 5
|
4天前
|
数据采集 Web App开发 前端开发
Python爬虫进阶:Selenium在动态网页抓取中的实战
【10月更文挑战第26天】动态网页抓取是网络爬虫的难点,因为数据通常通过JavaScript异步加载。Selenium通过模拟浏览器行为,可以加载和执行JavaScript,从而获取动态网页的完整内容。本文通过实战案例,介绍如何使用Selenium在Python中抓取动态网页。首先安装Selenium库和浏览器驱动,然后通过示例代码展示如何抓取英国国家美术馆的图片信息。
24 6
|
23天前
|
数据采集 Web App开发 数据可视化
Python爬虫教程:Selenium可视化爬虫的快速入门
Python爬虫教程:Selenium可视化爬虫的快速入门
|
23天前
|
缓存 测试技术 开发者
深入理解Python装饰器:用法与实现
【10月更文挑战第7天】深入理解Python装饰器:用法与实现
14 1
|
23天前
|
传感器 大数据 数据处理
深入理解Python中的生成器:用法及应用场景
【10月更文挑战第7天】深入理解Python中的生成器:用法及应用场景
32 1
|
30天前
|
存储 大数据 Python
案例学Python:filter()函数的用法,高级!
`filter()`函数是Python中处理序列数据的强大工具,它允许我们高效地根据条件过滤元素。通过结合匿名函数、常规函数或直接利用Python的内置逻辑,`filter()`提供了灵活且高效的过滤机制,尤其在大数据处理和内存敏感的应用中展现出其价值。掌握 `filter()`的使用,不仅能提升代码的可读性和效率,还能更好地适应Python的函数式编程风格。
29 2
|
23天前
|
Python
深入了解Python中星号变量的特殊用法
深入了解Python中星号变量的特殊用法
16 0
|
24天前
|
PyTorch 测试技术 算法框架/工具
Python中Thop库的常见用法和代码示例
肆十二在B站分享了关于THOP(Torch-OpCounter)的实战教学视频。THOP是一个用于计算PyTorch模型操作数和计算量的工具,帮助开发者评估模型复杂度和性能。本文介绍了THOP的安装、使用方法及基本用例,包括如何计算模型的FLOPs和参数量。
55 0
|
24天前
|
SQL 关系型数据库 MySQL
Python中Pymysql库的常见用法和代码示例
`pymysql` 是一个用于连接 MySQL 数据库的 Python 库,支持 SQL 查询的执行和结果处理。通过 `pip install pymysql` 安装后,可使用 `connect()` 方法建立连接,`cursor()` 创建游标执行查询,包括数据的增删改查,并通过 `commit()` 和 `rollback()` 管理事务,最后需关闭游标和连接以释放资源。
54 0
|
24天前
|
计算机视觉 Python
Python中Pillow库的常见用法和代码示例
Pillow是Python中广泛使用的图像处理库,支持丰富的图像操作功能,包括但不限于打开、保存、缩放、裁剪、旋转、调色等。本文通过一系列示例介绍Pillow的基本用法,涵盖图像的加载与显示、尺寸调整、裁剪与旋转、亮度调整、格式转换、滤镜应用、图像合成及像素级操作等。首先需通过`pip install pillow`安装库,随后可通过导入`PIL.Image`等模块开始图像处理任务。无论是初学者还是进阶用户,都能从Pillow提供的强大功能中获益。
23 0