Selenium 新手必备常用语句
1. 环境初始化与浏览器配置
这是脚本的开头必备,负责启动浏览器、配置驱动。
python
运行
# 1. 导入核心依赖(必导)
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
# 2. 初始化 Chrome 浏览器(自动匹配驱动,推荐)
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))
# 3. 可选:初始化 Firefox 浏览器(需额外安装 geckodriver,同理 Edge)
# driver = webdriver.Firefox(service=Service(GeckoDriverManager().install()))
# 4. 浏览器窗口配置(常用)
driver.maximize_window() # 窗口最大化(你已用到)
driver.set_window_size(1920, 1080) # 自定义窗口大小(宽×高)
driver.set_page_load_timeout(30) # 页面加载超时时间(30秒)
2. 页面导航与基础操作
负责打开网页、刷新、后退 / 前进等页面级操作。
python
运行
# 1. 打开目标网页(核心)
driver.get("https://www.xxx.com")
# 2. 页面刷新
driver.refresh()
# 3. 浏览器后退(返回上一页)
driver.back()
# 4. 浏览器前进(前往下一页)
driver.forward()
# 5. 关闭页面/浏览器(必写,释放资源)
driver.close() # 关闭当前标签页(多标签页时用)
driver.quit() # 关闭整个浏览器进程(推荐,你已用到)
3. 元素定位(核心中的核心)
Selenium 操作元素的前提是「找到元素」,By 类提供了 8 种定位方式,以下是最常用的 5 种。
python
运行
# 前提:等待元素加载完成(显式等待,推荐)
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
# 1. 通过 ID 定位(最稳定,优先使用,你已用到)
element = WebDriverWait(driver, 15).until(
EC.element_to_be_clickable((By.ID, "username"))
)
# 2. 通过 XPath 定位(最灵活,万能,你已大量用到)
# 绝对 XPath(不推荐,页面结构变化易失效):/html/body/div[1]/input
# 相对 XPath(推荐,灵活稳定)://*[@id="ignoreButton"]、//button[contains(text(),"登录")]
element = WebDriverWait(driver, 15).until(
EC.element_to_be_clickable((By.XPATH, '//*[@id="plainPassword"]'))
)
# 3. 通过 Name 定位(表单元素常用,如输入框、单选框)
element = WebDriverWait(driver, 15).until(
EC.element_to_be_clickable((By.NAME, "phone"))
)
# 4. 通过 Class Name 定位(注意:class 有空格时不可用,匹配单个 class 值)
element = WebDriverWait(driver, 15).until(
EC.element_to_be_clickable((By.CLASS_NAME, "login-btn"))
)
# 5. 通过链接文本定位(仅针对 <a> 标签)
# 精确匹配链接文本
element = WebDriverWait(driver, 15).until(
EC.element_to_be_clickable((By.LINK_TEXT, "忘记密码?"))
)
# 模糊匹配链接文本(更灵活)
element = WebDriverWait(driver, 15).until(
EC.element_to_be_clickable((By.PARTIAL_LINK_TEXT, "忘记"))
)
4. 元素交互操作(定位后必做)
找到元素后,对元素进行点击、输入、清空等操作。
python
运行
# 1. 输入文本(输入框专用,你已用到)
element.send_keys("要输入的内容")
# 2. 清空输入框内容(输入前推荐使用,你已用到)
element.clear()
# 3. 点击元素(按钮、链接、复选框等,你已用到)
element.click()
# 4. 获取元素文本(如获取标题、按钮文字,你最初用到过)
text = element.text
print("元素文本:", text)
# 5. 获取元素属性值(如获取 input 的 value、a 标签的 href)
attribute_value = element.get_attribute("value") # 获取 input 输入的内容
href_value = element.get_attribute("href") # 获取 a 标签的链接地址
5. 等待方式(解决页面加载延迟,避免报错)
新手最容易踩「元素未加载就操作」的坑,三种等待方式按需使用。
python
运行
# 1. 显式等待(推荐,精准,你已用到)
# 等待指定元素可点击,最长等待 15 秒,超时报错
element = WebDriverWait(driver, 15).until(
EC.element_to_be_clickable((By.XPATH, '//*[@id="ignoreButton"]'))
)
# 常用的 expected_conditions 还有:
# EC.presence_of_element_located() # 元素仅需存在于 DOM 中(无需可点击)
# EC.visibility_of_element_located() # 元素需可见(不被隐藏)
# 2. 隐式等待(全局生效,辅助显式等待)
# 脚本执行过程中,所有元素定位都会等待最多 5 秒,超时未找到才报错
driver.implicitly_wait(5)
# 3. 强制等待(简单粗暴,不推荐,仅用于临时调试)
import time
time.sleep(5) # 强制等待 5 秒,无论页面是否加载完成
6. 弹窗处理(常用,如登录后的提示弹窗)
python
运行
# 1. 处理原生弹窗(alert/confirm/prompt)
alert = driver.switch_to.alert # 切换到弹窗
alert.text # 获取弹窗文本内容
alert.accept() # 点击弹窗「确定」按钮
alert.dismiss() # 点击弹窗「取消」按钮
alert.send_keys("输入弹窗需要的内容") # 仅 prompt 弹窗可用
# 2. 处理自定义弹窗(如网站自己的弹窗,你已解决)
# 直接定位弹窗的关闭按钮,点击即可(如你的 ignoreButton)
二、 优质 Selenium 常用语句参考文章来源
官方文档(最权威,英文)
Selenium 官方文档的「WebDriver API」部分详细梳理了所有语句,适合进阶查阅:
国内优质中文教程(新手友好)
「菜鸟教程 - Selenium 教程」:梳理了基础常用语句,附带简单示例,适合入门快速查阅
「CSDN 优质专栏」:搜索关键词「Selenium Python 常用语句 总结」,大量博主整理了实战化的语句清单,附带踩坑说明,贴近实际开发(推荐筛选「原创」「点赞高」的文章)
实战类笔记(推荐)
搜索关键词「Selenium Python 自动化实战 常用语法」,这类文章会结合实际场景(如登录、表单提交、数据爬取)整理常用语句,比纯理论更易理解,和你的需求高度匹配。
总结
核心常用语句集中在「元素定位」「元素交互」「显式等待」三大块,这是编写自动化脚本的基础。
你当前的脚本已经用到了大部分核心语句,后续扩展功能(如文件上传、下拉框选择)可参考上述推荐文章补充。
新手编写脚本时,优先使用「ID 定位」+「显式等待」+「核心交互语句」,能大幅提升脚本稳定性,减少报错。
查阅资料时,优先选择「Python 版本」的内容(Selenium 支持多语言),避免混淆语法。
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 Gw