Selenium 简单入门操作示例

最简单的 Selenium 示例(Python版)

下面是一个完整的、最简单的 Selenium 操作示例,带你快速上手:

python 复制代码
from selenium import webdriver
from selenium.webdriver.common.by import By
import time

# 1. 启动浏览器(这里使用Chrome)
driver = webdriver.Chrome()

# 2. 打开网页(以百度为例)
driver.get("https://www.baidu.com")

# 3. 找到搜索框并输入内容
search_box = driver.find_element(By.ID, "kw")  # 通过ID定位搜索框
search_box.send_keys("Selenium自动化测试")     # 输入搜索关键词

# 4. 找到搜索按钮并点击
search_button = driver.find_element(By.ID, "su")  # 通过ID定位搜索按钮
search_button.click()                            # 点击搜索

# 5. 等待3秒查看结果
time.sleep(3)

# 6. 关闭浏览器
driver.quit()

代码解析

  1. 导入必要模块

    • webdriver:Selenium的核心模块

    • By:用于指定元素定位方式

    • time:用于简单等待

  2. 启动浏览器

    • webdriver.Chrome() 会自动启动Chrome浏览器

    • 确保已安装ChromeDriver并配置好环境变量

  3. 打开网页

    • get() 方法用于打开指定URL
  4. 元素定位与操作

    • find_element(By.ID, "kw"):通过HTML元素的ID属性定位

    • send_keys():向输入框输入文本

    • click():点击元素

  5. 简单等待

    • time.sleep(3):让程序暂停3秒,方便查看结果
  6. 关闭浏览器

    • quit():关闭浏览器并退出驱动

实际运行效果

当你运行这段代码时,你会看到:

  1. 自动打开Chrome浏览器

  2. 访问百度首页

  3. 在搜索框中自动输入"Selenium自动化测试"

  4. 自动点击"百度一下"按钮

  5. 停留3秒展示搜索结果

  6. 最后自动关闭浏览器

进阶小技巧

  1. 如果找不到ChromeDriver

    python 复制代码
    # 指定ChromeDriver路径
    driver = webdriver.Chrome(executable_path="你的chromedriver路径")
  2. 无头模式运行(不显示浏览器界面)

    python 复制代码
    from selenium.webdriver.chrome.options import Options
    
    options = Options()
    options.add_argument("--headless")  # 启用无头模式
    driver = webdriver.Chrome(options=options)
  3. 更智能的等待方式(推荐)

    python 复制代码
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    
    # 等待最多10秒,直到元素出现
    element = WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((By.ID, "kw"))
    )

这个简单示例已经包含了Selenium最核心的操作:启动浏览器、打开网页、定位元素、操作元素和关闭浏览器。你可以基于这个框架扩展更复杂的自动化测试脚本。

相关推荐
阁老1 天前
pytest测试框架:如何确保登录模块先执行并共享登录状态
测试
金銀銅鐵2 天前
浅解 JUnit 4 第十一篇:@Before 注解和 @After 注解如何发挥作用?
junit·单元测试
_志哥_2 天前
Superpowers 技术指南:让 AI 编程助手拥有超能力
人工智能·ai编程·测试
金銀銅鐵3 天前
浅解 JUnit 4 第十篇:方法上的 @Ignore 注解
junit·单元测试
FliPPeDround5 天前
浏览器扩展 E2E 测试的救星:vitest-environment-web-ext 让你告别繁琐配置
e2e·浏览器·测试
Apifox5 天前
Apifox 2 月更新|MCP Client 调试体验优化、测试套件持续升级、支持公用测试数据、测试报告优化
前端·后端·测试
infiniteWei5 天前
Skills、MCP、Agent 的边界与商业化定位(附项目筛选表)
人工智能·aigc·测试
se-tester5 天前
JMeter、Postman 和 SoapUI 在做接口测试上的优势和缺点
测试工具·jmeter·接口测试·postman·soapui
W-琑5 天前
软件测试-自动化测试
功能测试·自动化
阿狸猿5 天前
单元测试中静态测试、动态测试及白盒测试、回归测试实践
单元测试·软考