
1. Selenium自动化测试入门指南作为一名长期从事Web自动化测试的工程师我经常需要向新人解释Selenium的基本使用方法。今天我就来分享一套经过实战检验的Selenium入门方案特别适合刚接触Web自动化的开发者。我们将从环境配置开始逐步掌握浏览器控制的核心技巧。2. 环境准备与驱动配置2.1 浏览器驱动下载Selenium需要特定版本的浏览器驱动才能正常工作。以Chrome为例首先查看本地Chrome版本在浏览器地址栏输入chrome://version/访问ChromeDriver官方镜像站https://googlechromelabs.github.io/chrome-for-testing/选择与本地Chrome大版本号匹配的驱动版本如Chrome 120.x对应ChromeDriver 120.x.x.x注意驱动版本必须与浏览器主版本号一致否则会出现兼容性问题。这是新手最常见的错误之一。下载完成后建议将驱动文件放在项目根目录下方便路径管理。我通常会在项目中创建drivers目录专门存放各种浏览器驱动。2.2 驱动路径处理技巧在代码中指定驱动路径时建议使用绝对路径并做好兼容处理import os from selenium.webdriver.chrome.service import Service # 获取驱动绝对路径 driver_path os.path.join(os.path.dirname(__file__), drivers/chromedriver.exe) service Service(executable_pathdriver_path)这样处理可以避免在不同操作系统或项目结构中出现的路径问题。3. 浏览器实例化与控制3.1 浏览器选项配置通过Options类可以定制浏览器的启动参数from selenium.webdriver.chrome.options import Options options Options() options.add_argument(--no-sandbox) # 禁用沙盒模式 options.add_experimental_option(detach, True) # 保持浏览器打开--no-sandbox参数在某些Windows系统上是必须的特别是遇到权限问题时detach选项可以让浏览器在脚本结束后保持打开方便调试3.2 浏览器实例创建推荐使用Service类管理驱动生命周期from selenium import webdriver def create_driver(): options Options() options.add_argument(--no-sandbox) options.add_experimental_option(detach, True) service Service(executable_pathdriver_path) return webdriver.Chrome(serviceservice, optionsoptions) driver create_driver()将创建过程封装成函数可以大大提高代码复用率。4. 基本页面操作4.1 页面导航控制# 打开网页 driver.get(https://www.baidu.com) # 刷新页面 driver.refresh() # 前进/后退 driver.forward() driver.back()提示页面加载需要时间实际操作中应该添加等待逻辑我们会在后续章节详细讲解。4.2 窗口与标签页管理# 关闭当前标签页 driver.close() # 完全退出浏览器 driver.quit() # 窗口最大化/最小化 driver.maximize_window() driver.minimize_window() # 设置窗口尺寸 driver.set_window_size(1024, 768)特别注意close()和quit()的区别close()仅关闭当前标签页quit()会退出整个浏览器并释放驱动资源5. 实战技巧与常见问题5.1 调试技巧添加延时观察效果import time time.sleep(2) # 暂停2秒打印页面信息辅助调试print(driver.current_url) # 当前URL print(driver.title) # 页面标题5.2 常见问题排查版本不匹配错误症状SessionNotCreatedException解决方案确保浏览器和驱动版本完全匹配驱动路径问题症状WebDriverException解决方案使用绝对路径检查文件权限浏览器未关闭确保在脚本最后调用driver.quit()或者在try-finally块中管理浏览器生命周期6. 完整示例代码import os import time from selenium import webdriver from selenium.webdriver.chrome.options import Options from selenium.webdriver.chrome.service import Service # 配置驱动路径 driver_path os.path.join(os.path.dirname(__file__), drivers/chromedriver.exe) def create_driver(): # 浏览器选项配置 options Options() options.add_argument(--no-sandbox) options.add_experimental_option(detach, True) # 创建服务实例 service Service(executable_pathdriver_path) # 实例化浏览器 return webdriver.Chrome(serviceservice, optionsoptions) # 使用示例 driver create_driver() try: driver.get(https://www.baidu.com) driver.maximize_window() time.sleep(2) print(f当前页面标题: {driver.title}) print(f当前页面URL: {driver.current_url}) time.sleep(2) driver.minimize_window() time.sleep(2) finally: driver.quit()在实际项目中我会进一步将这些基础操作封装成PageObject模式使测试代码更加清晰可维护。但作为入门掌握这些核心操作已经可以应对大多数简单的自动化需求了。