Selenium 基础入门教程(Python版)

目录


简介

Selenium 是一个用于自动化浏览器操作的工具,常用于:

  • 自动化测试
  • 爬虫抓取网页数据
  • 自动化任务(如刷网页、填表单等)

环境准备

安装 Selenium

1
pip install selenium

下载 ChromeDriver

  1. 查浏览器版本:在 Chrome 地址栏输入 chrome://version/
  2. 下载对应版本驱动:https://googlechromelabs.github.io/chrome-for-testing/
  3. 解压后将 chromedriver.exe
    • 放入脚本目录,或
    • 添加到系统环境变量 Path

第一个 Selenium 脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
from selenium import webdriver
from selenium.webdriver.common.by import By
import time

# 启动浏览器
driver = webdriver.Chrome()

# 打开网页
driver.get("https://www.bing.com")

# 输入关键词
search_box = driver.find_element(By.NAME, "q")
search_box.send_keys("Selenium 教程")

# 提交搜索
search_box.submit()

# 等待几秒
time.sleep(5)

# 关闭浏览器
driver.quit()

常见元素定位方式

方法 示例 说明
By.ID By.ID, "kw" 通过元素 id
By.NAME By.NAME, "q" 通过 name 属性
By.XPATH By.XPATH, "//div[@class='xx']" 万能但性能稍慢
By.CSS_SELECTOR By.CSS_SELECTOR, ".btn" 推荐,快速且灵活

常见网页操作

1
2
3
4
5
6
7
element.send_keys("输入内容")     # 输入文本
element.click() # 点击元素
element.clear() # 清空输入框
driver.back() # 回退
driver.forward() # 前进
driver.refresh() # 刷新页面
driver.get_screenshot_as_file("screenshot.png") # 截图

等待机制

显式等待(推荐)

1
2
3
4
5
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

wait = WebDriverWait(driver, 10)
element = wait.until(EC.presence_of_element_located((By.ID, "some_id")))

实战任务示例:百度搜索“Python”

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
from selenium import webdriver
from selenium.webdriver.common.by import By
import time

driver = webdriver.Chrome()
driver.get("https://www.baidu.com")

search = driver.find_element(By.ID, "kw")
search.send_keys("Python")

button = driver.find_element(By.ID, "su")
button.click()

time.sleep(5)
driver.quit()

常见问题排查

问题 解决方案
chromedriver 找不到 检查是否配置在 PATH 或路径是否正确
浏览器版本不兼容 更新 Chrome 或下载对应版本的 ChromeDriver
报错 DeprecationWarning 使用新版 By.XPATHBy.ID 等方法
页面加载太慢 使用显式等待而非 time.sleep()

附录

查看浏览器版本

  • Chrome 地址栏输入:chrome://version

ChromeDriver 下载地址

参考仓库