跳到主要内容

🌐 Selenium 入门教程

Selenium 是一个强大的浏览器自动化工具,可以模拟用户在网页上的各种操作,常用于自动化测试、网页抓取等任务。


✅ Selenium 能解决什么问题?

用途示例场景
自动化测试自动点击、表单提交、页面跳转等测试
动态网页抓取抓取 JavaScript 渲染后的数据
自动登录模拟用户输入用户名、密码并登录
模拟行为滑动页面、截图、鼠标操作等

💡 安装 Selenium 和驱动

pip install selenium

你还需要浏览器驱动(如 ChromeDriver),需与浏览器版本匹配:https://chromedriver.chromium.org/downloads


🛠 基本使用

1️⃣ 打开网页并操作元素

selenium 导入 webdriver

浏览器 = webdriver.Chrome()
浏览器.获取("[https://www.example.com](https://www.example.com)")

输入框 = 浏览器.查找元素("名称", "q")
输入框.发送键("Python Selenium")
输入框.提交()

2️⃣ 查找页面元素

元素 = 浏览器.查找元素("id", "my-id")
元素2 = 浏览器.查找元素("类名称", "class-name")
元素组 = 浏览器.查找元素们("标签名称", "a")

3️⃣ 等待元素加载

selenium.webdriver.common.by 导入 By
selenium.webdriver.support.ui 导入 WebDriverWait
selenium.webdriver.support 导入 expected_conditions 作为 EC

等待器 = WebDriverWait(浏览器, 10)
元素 = 等待器.直到(EC.存在元素定位((By.ID, "my-id")))

4️⃣ 页面交互

按钮 = 浏览器.查找元素("id", "submit")
按钮.点击()

输入框 = 浏览器.查找元素("名称", "username")
输入框.清除()
输入框.发送键("admin")

5️⃣ 模拟滚动与截图

浏览器.执行脚本("window.scrollTo(0, document.body.scrollHeight);")
浏览器.保存屏幕截图("screenshot.png")

6️⃣ 关闭浏览器

浏览器.关闭()  # 关闭当前标签页
浏览器.退出() # 关闭整个浏览器

🔐 示例:自动登录网站

浏览器.获取("https://example.com/login")
用户框 = 浏览器.查找元素("id", "username")
密码框 = 浏览器.查找元素("id", "password")
用户框.发送键("myuser")
密码框.发送键("mypassword")
浏览器.查找元素("id", "login-btn").点击()

🧱 常用查找方式(find_element

查找方式参数名称示例
id"id"("id", "main")
name"name"("name", "username")
class name"class name"("class name", "btn")
tag name"tag name"("tag name", "a")
link text"link text"("link text", "首页")
css selector"css selector"("css selector", "#login")
xpath"xpath"("xpath", "//input[@id='a'])

✅ Selenium 总结

功能方法/操作
打开网页browser.get(url)
查找元素find_element(), find_elements()
模拟操作click(), send_keys()
等待元素WebDriverWait, expected_conditions
滚动、截图execute_script(), save_screenshot()
浏览器控制close(), quit()