Selenium 基础入门教程(Python版)
目录
简介
Selenium 是一个用于自动化浏览器操作的工具,常用于:
- 自动化测试
- 爬虫抓取网页数据
- 自动化任务(如刷网页、填表单等)
环境准备
安装 Selenium
下载 ChromeDriver
- 查浏览器版本:在 Chrome 地址栏输入
chrome://version/
- 下载对应版本驱动:https://googlechromelabs.github.io/chrome-for-testing/
- 解压后将
chromedriver.exe:
第一个 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.XPATH、By.ID 等方法 |
| 页面加载太慢 |
使用显式等待而非 time.sleep() |
附录
查看浏览器版本
- Chrome 地址栏输入:
chrome://version
ChromeDriver 下载地址
参考仓库