Selenium入门教程
一、简介
Selenium 是一个用于自动化 Web 浏览器操作的工具,主要用于 Web 应用程序的测试,也可用于 Web 数据爬取等场景。它支持多种编程语言,如 Python、Java、C# 等,并且能在多种浏览器上运行,包括 Chrome、Firefox、Safari、Edge 等。
二、环境搭建
1、安装 Selenium 库
如果使用 Python,在终端或命令提示符中输入pip install selenium来安装。
2、下载浏览器驱动
Selenium 需要与特定浏览器的 WebDriver 一起使用。以 Chrome 浏览器为例,可从ChromeDriver 官方网站下载对应版本的驱动程序。下载完成后,将其解压,并把所在路径添加到系统环境变量中,或者在代码中指定其位置。
三、基本操作
1、导入库和初始化 WebDriver
python 运行
from selenium import webdriver
from selenium.webdriver.edge.service import Service
from selenium.webdriver.edge.options import Options
\# 设置Edge浏览器选项
edge\_options = Options()
edge\_options.add\_argument("--headless") # 无头模式,不显示浏览器窗口
edge\_options.add\_argument("--disable-gpu")
edge\_options.add\_argument("--window-size=1920,1080")
\# 指定Edge驱动路径(需要先下载对应版本的Edge驱动)
edge\_service = Service('D:\\桌面文件\\edgedriver\_win64\\msedgedriver.exe') # 替换为你的Edge驱动路径
\# 启动Edge浏览器
driver = webdriver.Edge(service=edge\_service, options=edge\_options)
2、打开网页
python 运行
url = "https://www.example.com"
driver.get(url)
3、定位元素
python 运行
\# 通过ID定位元素
element = driver.find\_element(By.ID, "element\_id")
\# 通过名称定位元素
element = driver.find\_element(By.NAME, "element\_name")
\# 通过类名定位元素
element = driver.find\_element(By.CLASS\_NAME, "element\_class")
\# 通过CSS选择器定位元素
element = driver.find\_element(By.CSS\_SELECTOR, "css\_selector")
\# 通过XPath定位元素
element = driver.find\_element(By.XPATH, "xpath\_expression")
4、操作元素
python 运行
\# 输入文本
input\_element = driver.find\_element(By.ID, "input\_id")
input\_element.send\_keys("Hello, World!")
\# 点击按钮
button\_element = driver.find\_element(By.ID, "button\_id")
button\_element.click()
5、获取页面信息
python 运行
\# 获取网页标题
title = driver.title
\# 获取页面源代码
source\_code = driver.page\_source
6、关闭浏览器
python 运行
driver.quit()
四、等待机制
1、隐式等待
设置一个全局的等待时间,在查找元素时,如果元素没有立即出现,会在指定的时间内不断尝试查找,直到元素出现或超过等待时间。
python 运行
driver.implicitly\_wait(10) # 等待10秒
2、显式等待
指定要等待的条件,在指定的时间内不断检查条件是否满足,直到条件满足或超过等待时间。
python 运行
from selenium.webdriver.support import expected\_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait
\# 等待元素出现
element = WebDriverWait(driver, 10).until(EC.presence\_of\_element\_located((By.ID, "element\_id")))
五、实战案例
以自动化登录网站为例:
python 运行
from selenium import webdriver
\# 设置浏览器驱动路径
driver = webdriver.Chrome(executable\_path='/path/to/chromedriver')
\# 打开登录页面
driver.get('https://www.example.com/login')
\# 等待页面加载完成
time.sleep(2)
\# 定位用户名和密码输入框
username\_input = driver.find\_element\_by\_id('username')
password\_input = driver.find\_element\_by\_id('password')
\# 输入用户名和密码
username\_input.send\_keys('your\_username')
password\_input.send\_keys('your\_password')
\# 模拟点击登录按钮
login\_button = driver.find\_element\_by\_id('login\_button')
login\_button.click()
\# 等待一段时间,确保登录成功
time.sleep(3)
\# 关闭浏览器
driver.quit()