Selenium,一个Web自动化测试的Python库!

news/2025/1/11 3:36:42/

Selenium,一个Web自动化测试的Python库

大家好,我是景墨。今天咱们来聊聊一个超级实用的Python库:Selenium。这个库可以帮我们实现Web自动化测试,简直是测试工程师和爬虫开发者的神器!保证学会了这个,你的Python技能绝对会飞速提升!

Selenium是什么?

首先,咱们得搞清楚Selenium是啥。简单来说,Selenium是一个用于Web应用程序测试的工具。它可以直接驱动浏览器进行各种操作,比如点击按钮、填写表单、爬取数据等。最棒的是,它支持多种主流浏览器,像Chrome、Firefox、Safari等都不在话下。

为什么要用Selenium?

你可能会问,为啥要用Selenium呢?好处可多了:

  1. 自动化测试:可以模拟用户操作,自动测试网页功能。

  2. 跨浏览器测试:一套代码,多个浏览器通用。

  3. 爬虫利器:对于一些复杂的、需要交互的网页,Selenium简直是神器。

安装Selenium

来,咱们先安装一下:

pip install selenium

别忘了,你还需要安装对应浏览器的驱动。比如Chrome浏览器,你需要下载ChromeDriver。

Selenium基本使用

好了,现在让我们看看怎么用Selenium开始我们的自动化之旅。

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys# 创建Chrome浏览器实例
driver = webdriver.Chrome()# 打开网页
driver.get("https://www.python.org")# 找到搜索框元素
search_bar = driver.find_element(By.NAME, "q")# 在搜索框中输入"pycon"
search_bar.send_keys("pycon")# 模拟按下回车键
search_bar.send_keys(Keys.RETURN)# 等待几秒,让结果加载
driver.implicitly_wait(10)# 打印页面标题
print(driver.title)# 关闭浏览器
driver.quit()

看,是不是很简单?我们用Selenium打开了Python官网,在搜索框输入了"pycon",然后点击了搜索。这就是一个最基本的Selenium自动化操作。

常用操作

景墨再教你们一些常用的Selenium操作:

  1. 定位元素:

# 通过ID定位
element = driver.find_element(By.ID, "loginButton")# 通过CSS选择器定位
element = driver.find_element(By.CSS_SELECTOR, "#loginButton")# 通过XPath定位
element = driver.find_element(By.XPATH, "//button[@id='loginButton']")
  1. 点击元素:

element.click()
  1. 等待元素出现:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as ECelement = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "myDynamicElement"))
)
  1. 处理弹窗:

# 接受弹窗
driver.switch_to.alert.accept()# 拒绝弹窗
driver.switch_to.alert.dismiss()

最佳实践

  1. 使用显式等待而不是隐式等待,可以提高测试的稳定性。

  2. 使用Page Object Model模式组织你的代码,让测试更容易维护。

  3. 定期更新Selenium和浏览器驱动,以确保兼容性。

  4. 在进行Web爬虫时,要遵守网站的robots.txt规则,不要给服务器造成过大压力。

好啦,小伙伴们,今天的Selenium入门就到这里啦!记得多动手实践,有问题随时在评论区问景墨哦。祝大家学习愉快,Python自动化测试技能节节高!我是景墨,我们下次再见!

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走! 

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。


http://www.ppmy.cn/news/1562142.html

相关文章

Node.js JXcore 打包教程

Node.js JXcore 打包教程 介绍 Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时环境,它允许开发者使用 JavaScript 编写服务器端和网络应用程序。JXcore 是一个流行的 Node.js 发行版,它支持将 Node.js 应用程序打包成单一的可执行文件,使得部署和分发变得更加容易…

【C++习题】22.随机链表的复制

文章目录 题目:138. 随机链表的复制 - 力扣(LeetCode)代码: 题目:138. 随机链表的复制 - 力扣(LeetCode) 链接🔗:138. 随机链表的复制 - 力扣(LeetCode&…

芯片详细讲解,从而区分CPU、MPU、DSP、GPU、FPGA、MCU、SOC、ECU

目录 芯片的概念结构 芯片的派系划分 通用芯片(CPU,MPU,GPU,DSP) 定制芯片(FPGA,ASIC) 芯片之上的集成(MCU,SOC,ECU) 软硬件的匹…

详解Redis的Hash类型及相关命令

目录 HSET HGET HEXISTS HDEL HKEYS HVALS HGETALL HMGET HLEN HSETNX HINCRBY HINCRBYFLOAT 内部编码 应用场景 HSET 设置 hash 中指定的字段(field)的值(value)。 语法 HSET key field value [field value ...] 时…

关机重启后,GitLab服务异常

整理机房,关闭了所有主机重新上架。 上架后开机,所有主机硬件启动正常。 其中一台GitLab服务器启动正常,使用gitlab-ctl status查看服务业正常。 但使用web登陆却失败,如下图: 反复测试,发现无论使用正确密码还是错误密码都是同样的提示。很大可能是数据库的问题。 使…

reactor中的并发

1. reactor中的并发有两种方式 1.1 flatmap,底层是多线程并发处理。在reactor的演讲中,flatmap对于io类型的并发效果较好. flamap有两个参数: int concurrency, int prefetch。分别代表并发的线程数和缓存大小 注意凡是参数中有prefetch的,都…

两个关于 li bottom 的CSS 问题 笔记

一、设置点击区域连接a标签 要实现点击 li 和 bottom 区域时都能连接到 a 标签&#xff0c;可以通过以下方式设置&#xff1a; 方法 1&#xff1a;使用 CSS 扩大点击区域 将 a 标签设置为块级元素&#xff0c;并填充 li 的整个区域&#xff1a; <ul><li><a …

STM32 : PWM 基本结构

这张图展示了PWM&#xff08;脉冲宽度调制&#xff09;的基本结构和工作流程。PWM是一种用于控制功率转换器输出电压的技术&#xff0c;通过调整信号的占空比来实现对负载的精确控制。以下是详细讲解&#xff1a; PWM 基本结构 1. 时基单元 ARR (Auto-reload register): 自动…