【学习笔记】初识 Selenium

学习说明:

本贴的学习目的是实现Selenium浏览器控制的初级入门,学习效果为实现控制浏览器进行百度搜索。

第一部分:认识Selenium

Selenium是一个基于标准的 WebDriver 语法规范的模拟浏览器操作的工具,由 Google 维护源代码,目前支持大部分主流的编程语言,包括:Java、Python、C#、PHP、Ruby、JavaScript等;且支持全部主流的浏览器。

指路:

[Selenium 官网]
[Selenium Github 主页]

Selenium 工具集:

Selenium IDE(集成开发环境) 是一个创建测试脚本的原型工具。它是一个浏览器插件,实现简单的浏览器操作的录制与回放功能,可以录制用户的基本操作,生成测试用例。随后可以运行这些测试用例在浏览器里回放,可将测试用例转换为其他语言的自动化脚本。

Selenium WebDriver是selenium 家族的核心工具,WebDriver支持多种不同的语言编写自动化测试脚本。分为Client Libraries(编写测试脚本)和Selenium Server(控制浏览器行为)

Selenium Grid能让你并行的运行你的脚本、是用于运行在不同的机器、不同的浏览器并行测试的工具,使得 WebDriver 能提升针对大型的测试脚本或者需要运行在多环境的测试脚本的处理能力,目的在于加快脚本运行的速度,从而减少脚本运行的总时间。

第二部分:环境搭建

说明:本次学习的环境信息如下:

类型 名称  版本 备注
操作系统WindowsWindows 11 专业版64位23H2
语言Python3.12.3-amd64
IDEPycharm20241-14494
浏览器Microsoft Edge123.0.2420.81
一、安装 Selenium 工具包

由于Python 默认有 pip Python 包管理工具,可以通过 pip 非常方便的联网安装 Selenium。

启动命令行工具:Win+R | 输入 cmd | 回车

或者在Pycharm的终端内运行

pip install -U selenium            # 该命令效果为自动下载安装最新版Selenium工具包
pip install selenium==3.4.3     # 该命令效果为下载安装指定版本(3.4.3)Selenium工具包
pip uninstall selenium             # 该命令效果为卸载当前的Selenium工具包

我们也可以使用非官方的国内镜像来进行安装:

pip install --index https://mirrors.ustc.edu.cn/pypi/web/simple/ selenium  # 清华镜像源

注意:如果你挂载着网络代理可能会安装失败。

当然,如果你的电脑处于非接入互联网的环境,也可以先下载 Selenium 的 Python 安装包,再进行手动安装。

[官方下载地址]

下载后,解压该压缩包,然后用命令行进入该压缩包的根目录,输入命令进行安装

python setup.py install

安装后,我们可以在cmd里使用使用以下命令来查看是否安装成功:

pip show selenium
二、安装WebDriver浏览器驱动
1、WebDriver驱动下载

我们首先查看浏览器的版本:

image.png

再去对应的官网下载对应版本的WebDriver:

[GoogleChrome]

[Microsoft Edge]

 

注意:浏览器版本与WebDriver驱动器版本要互相对应,否则无法运行。

2、WebDriver环境配置

下载好的压缩包要解压放在python的安装路径里,我们可以在cmd里用以下命令查看安装路径。

py -0p

放好后我们将WebDriver的路径放在系统环境变量的Path内,完成环境变量的配置。

第三部分、基础用法

一、基本语句
# 导入Selenium
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.keys import Keys
import time

# 初始化并打开Edge浏览器
driver = webdriver.Edge()

# 访问百度
driver.get(r'https://www.baidu.com/')

# 用Xpath寻找输入框
input_element = driver.find_element(By.XPATH,'//*[@id="kw"]')

# 向输入框中输入文本
input_element.send_keys('摸鱼派')

# 用Xpath寻找搜索按钮
click_button = driver.find_element(By.XPATH,'//*[@id="su"]')

# 单击按钮
click_button.click()

# 暂停三秒,等待搜索结果
time.sleep(3)

# 点击搜索结果第一项
fishpi = driver.find_element(By.XPATH,'//*[@id="1"]/div/div[1]/h3/a/em')

# 单击按钮
fishpi.click()

# 暂停五秒
time.sleep(5)

# 关闭浏览器
driver.close()
初始化语句:
# driver = webdriver.Browser('url')
driver = webdriver.Edge('C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe')  

# 也可以这样用:
path = r'C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe'
driver = webdriver.Edge(path)

因为我们配过环境变量了,所以可以直接初始化,无需填写'浏览器所在位置路径':

#driver = webdriver.浏览器类型()
driver = webdriver.Edge()
get语句:

get语句用来访问网址。

# driver.get('url')
driver.get(r'https://www.baidu.com/')
输入语句:

是键盘事件,用来控制向页面元素中输入文字:

# input_element.send_keys('value')
input_element.send_keys('摸鱼派')
单击语句:

是鼠标事件,用来单击页面元素:

# button.click()
click_button.click()
暂停语句:

time事件,用来让程序睡一会:

#time.sleep(number)
time.sleep(5)
关闭浏览器:
 
# 关闭WebDriver当前正在访问的窗口。close() 方法既不需要任何参数,也无任何返回值。
driver.close()

# quit()方法用于关闭程序已打开的所有窗口。该方法也不需要任何参数,也无任何返回值。
driver.quit()

close()和quit()的区别:

关闭当前所有的浏览器窗口,关闭浏览器驱动进程,销毁driver操作,则需要使用quit方法。
当浏览器打开了多个窗口,只想要关闭当前鼠标聚焦的窗口(句柄),则需要使用close方法。

二、页面定位

Selenium在网页中有8种不同的定位方式用来找到页面中的元素:

# 通过 ID 定位
element = driver.find_element(By.ID, "element_id")

# 通过 Name 定位
element = driver.find_element(By.NAME, "element_name")

# 通过 Class Name 定位
element = driver.find_element(By.CLASS_NAME, "class_name")

# 通过 Tag Name 定位
element = driver.find_element(By.TAG_NAME, "div")

# 通过 Link Text 定位
element = driver.find_element(By.LINK_TEXT, "Link Text")

# 通过 Partial Link Text 定位
element = driver.find_element(By.PARTIAL_LINK_TEXT, "Partial Link Text")

# 通过 CSS Selector 定位
element = driver.find_element(By.CSS_SELECTOR, "css_selector")

# 通过 XPath 定位
element = driver.find_element(By.XPATH, "xpath")

# 查找多个元素
elements = driver.find_elements(By.CLASS_NAME, "class_name")

注意:网上大部分Selenium教程采用旧版本语法,目前旧语法已被弃用,不推荐使用,请注意甄别。

8种方式各有优缺点,推荐使用Xpath进行定位:

在页面用指针找到对应元素后可直接右键复制Xpath,而且程序不容易认错

三、实际操作

实现效果为:

1. 登录摸鱼派账号
2. 在聊天室发送一条消息
 

# 导入Selenium
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.keys import Keys
import time

# 初始化并打开Edge浏览器
driver = webdriver.Edge()

# 访问百度
driver.get('https://fishpi.cn/login?goto=https%3A%2F%2Ffishpi.cn%2F')
# 暂停3秒
time.sleep(3)
# 输入用户名和密码
name = driver.find_element(By.XPATH,'//*[@id="nameOrEmail"]')
name.send_keys('')
password = driver.find_element(By.XPATH,'//*[@id="loginPassword"]')
password.send_keys('')
# 点击登录按钮
login_button = driver.find_element(By.XPATH,'/html/body/div[3]/div/div[1]/div/button[1]')
login_button.click()
time.sleep(3)
# 进入聊天室
ChatRoom = driver.find_element(By.PARTIAL_LINK_TEXT,"聊天室")
ChatRoom.click()
time.sleep(6)
# 输入消息并发送
text = driver.find_element(By.XPATH,'//*[@id="chatContent"]/div[2]/div[3]/pre')
text.send_keys('test')
send = driver.find_element(By.XPATH,'/html/body/div[3]/div/div[1]/div[1]/div/div/div[2]/div[3]/button[3]')
send.click()

# 关闭浏览器
driver.quit()

当然,下面是一篇关于Selenium学习的简要笔记Selenium学习笔记 Selenium是一个用于自动化浏览器操作的工具,它提供了一套API,可以简化Web应用程序的测试和自动化过程。以下是一些基本概念和用法,可以帮助你快速入门Selenium。 1. 安装Selenium 首先,你需要安装Selenium库。你可以使用pip命令来安装,在命令行中执行以下命令: ``` pip install selenium ``` 2. 驱动程序 Selenium需要一个浏览器驱动程序来控制浏览器。根据你使用的浏览器,你需要下载相应的驱动程序。 - 如果你使用Chrome浏览器,你需要下载ChromeDriver; - 如果你使用Firefox浏览器,你需要下载geckodriver; - 如果你使用Edge浏览器,你需要下载MicrosoftWebDriver。 3. 启动浏览器 在使用Selenium之前,请确保已经将驱动程序路径添加到系统环境变量中。然后,你可以使用以下代码启动一个浏览器: ```python from selenium import webdriver # 使用Chrome浏览器 driver = webdriver.Chrome() # 使用Firefox浏览器 driver = webdriver.Firefox() # 使用Edge浏览器 driver = webdriver.Edge() ``` 4. 打开网页 一旦你启动了浏览器,你可以使用以下代码打开一个网页: ```python driver.get("https://www.example.com") ``` 5. 查找元素 Selenium提供了多种方式来查找网页上的元素,比如按ID、类名、标签名等。以下是一些示例代码: ```python # 按ID查找元素 element = driver.find_element_by_id("element_id") # 按类名查找元素 elements = driver.find_elements_by_class_name("element_class") # 按标签名查找元素 element = driver.find_element_by_tag_name("element_tag") ``` 6. 元素操作 一旦找到了元素,你可以对它进行各种操作,比如点击、输入文本等。以下是一些示例代码: ```python # 点击元素 element.click() # 输入文本 element.send_keys("text") # 获取元素文本 text = element.text ``` 这只是Selenium的基本用法,还有很多其他功能和用法等待你去探索。希望这篇学习笔记对你有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李破山

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值