HoRain云--Selenium WebDriver

张开发
2026/4/3 17:21:42 15 分钟阅读
HoRain云--Selenium WebDriver
HoRain云小助手个人主页 个人专栏: 《Linux 系列教程》《c语言教程》⛺️生活的理想就是为了理想的生活!⛳️ 推荐前些天发现了一个超棒的服务器购买网站性价比超高大内存超划算忍不住分享一下给大家。点击跳转到网站。专栏介绍专栏名称专栏介绍《C语言》本专栏主要撰写C干货内容和编程技巧让大家从底层了解C把更多的知识由抽象到简单通俗易懂。《网络协议》本专栏主要是注重从底层来给大家一步步剖析网络协议的奥秘一起解密网络协议在运行中协议的基本运行机制《docker容器精解篇》全面深入解析 docker 容器从基础到进阶涵盖原理、操作、实践案例助您精通 docker。《linux系列》本专栏主要撰写Linux干货内容从基础到进阶知识由抽象到简单通俗易懂帮你从新手小白到扫地僧。《python 系列》本专栏着重撰写Python相关的干货内容与编程技巧助力大家从底层去认识Python将更多复杂的知识由抽象转化为简单易懂的内容。《试题库》本专栏主要是发布一些考试和练习题库涵盖软考、HCIE、HRCE、CCNA等目录⛳️ 推荐专栏介绍 主要特点 基本组件 快速开始Python 示例 安装准备 常用定位元素方法⏳ 等待机制重要 常见用途 最佳实践 与其他工具对比 常见问题你好Selenium WebDriver 是一个用于自动化 Web 浏览器交互的强大工具。它提供了一组 API允许你用编程语言如 Java、Python、C#、JavaScript 等来控制浏览器模拟真实用户的操作比如点击、输入、导航、抓取数据等。主要特点跨浏览器支持 Chrome、Firefox、Edge、Safari 等多语言绑定Java、Python、C#、JavaScript、Ruby 等开源免费完全开源社区活跃跨平台Windows、macOS、Linux 均可运行基本组件WebDriver API核心编程接口浏览器驱动如 ChromeDriver、GeckoDriverIDE录制和回放工具Selenium IDEGrid分布式测试并行运行快速开始Python 示例from selenium import webdriver from selenium.webdriver.common.by import By import time # 1. 启动浏览器 driver webdriver.Chrome() # 需要安装 ChromeDriver # 2. 打开网页 driver.get(https://www.example.com) # 3. 查找元素并交互 search_box driver.find_element(By.NAME, q) search_box.send_keys(Selenium WebDriver) search_box.submit() # 4. 等待并获取结果 time.sleep(2) results driver.find_elements(By.CSS_SELECTOR, h3) for result in results[:3]: print(result.text) # 5. 关闭浏览器 driver.quit()安装准备# Python pip install selenium # 还需要下载对应的浏览器驱动 # Chrome: https://sites.google.com/chromium.org/driver/ # 或使用 webdriver-manager 自动管理 pip install webdriver-manager常用定位元素方法# 多种定位方式 driver.find_element(By.ID, username) driver.find_element(By.NAME, password) driver.find_element(By.CLASS_NAME, btn) driver.find_element(By.TAG_NAME, input) driver.find_element(By.LINK_TEXT, 登录) driver.find_element(By.PARTIAL_LINK_TEXT, 忘记) driver.find_element(By.CSS_SELECTOR, #login .submit) driver.find_element(By.XPATH, //button[typesubmit])⏳等待机制重要from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC # 显式等待 - 推荐 element WebDriverWait(driver, 10).until( EC.presence_of_element_located((By.ID, dynamic-element)) ) # 隐式等待 driver.implicitly_wait(10) # 全局等待时间常见用途自动化测试功能测试、回归测试网页爬虫处理 JavaScript 渲染的页面批量操作自动填写表单、重复任务监控检查网站可用性监控数据抓取动态内容采集最佳实践使用明确的等待避免time.sleep()保持选择器稳定优先用 ID、data-testid实现页面对象模式Page Object Model添加适当的异常处理使用 headless 模式提高速度定期更新浏览器驱动与其他工具对比Playwright更新功能更丰富跨浏览器支持更好Puppeteer专为 Chrome/Chromium 设计Cypress更适合现代 Web 应用测试BeautifulSoup仅解析 HTML无浏览器交互常见问题元素找不到等待时间不足、iframe、动态ID版本不兼容浏览器与 WebDriver 版本要匹配性能问题减少不必要的等待使用 headless需要我详细讲解某个特定方面吗比如具体浏览器的配置、高级技巧、项目结构设计或者是解决某个具体问题❤️❤️❤️本人水平有限如有纰漏欢迎各位大佬评论批评指正如果觉得这篇文对你有帮助的话也请给个点赞、收藏下吧非常感谢! Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧

更多文章