Selenium 流程自动化

Selenium是一个用于自动化Web应用程序测试的开源工具集,它提供了一组工具和库,使开发人员能够模拟用户与Web应用程序的交互,以进行自动化测试、Web应用程序的自动化操作和数据提取。Selenium支持多种编程语言,包括Python、Java、C#等,但最常见的用法之一是使用Python进行Web自动化。

一、组件工具

主要组件和工具包括:

  1. Selenium WebDriver:这是Selenium的核心组件,它提供了API来编写脚本和程序,以模拟用户在Web浏览器中的操作。您可以使用WebDriver来打开浏览器、导航到网页、查找和操作页面上的元素,以及执行各种操作,如单击、输入文本等。

  2. Selenium IDE:一个浏览器插件,用于录制和回放用户在浏览器中的操作,以便创建自动化测试脚本。Selenium IDE通常用于快速生成测试脚本,但它的功能有限,主要用于初步测试脚本的创建。

  3. Selenium Grid:Selenium Grid允许在多个计算机上并行运行测试,这对于大规模测试和跨不同浏览器和操作系统的测试非常有用。它允许将测试任务分发到多个节点,并从中心控制台监视和管理。

  4. Selenium支持多种浏览器:Selenium支持各种主要Web浏览器,包括Chrome、Firefox、Safari、Edge等。每个浏览器都有对应的浏览器驱动程序,用于与浏览器进行通信和控制。

  5. 多语言支持:Selenium支持多种编程语言,使开发人员可以使用自己熟悉的语言来编写测试脚本。常见的支持语言包括Python、Java、C#、Ruby等。

Selenium通常用于自动化测试、网站数据抓取、Web应用程序的自动化操作和用户界面(UI)测试。开发人员和测试人员可以使用Selenium来自动执行各种任务,如功能测试、性能测试、回归测试等,以确保Web应用程序的质量和稳定性。

要开始使用Selenium,您需要安装相应的浏览器驱动程序、选择编程语言并编写自动化脚本来模拟用户操作。这样,您可以执行测试、执行Web任务或自动执行其他与Web应用程序相关的任务。

二、 基本使用

  1. 安装Selenium :在终端中使用pip安装Selenium:

    复制代码
    pip install selenium
  2. 导入必要的库:

    复制代码
    from selenium import webdriver
  3. 创建WebDriver对象:您可以使用不同的浏览器驱动程序创建WebDriver对象,如Chrome、Firefox、Edge等。

    复制代码
    driver = webdriver.Chrome()  # 使用Chrome浏览器
  4. 打开网页:

    复制代码
    driver.get("https://www.example.com")  # 打开网页
  5. 定位元素:可以使用各种方法来定位页面元素,如ID、名称、XPath、CSS选择器等。

    复制代码
    element = driver.find_element_by_id("element_id")  # 通过ID定位元素
  6. 与元素交互:

    复制代码
    1. element.click() # 单击元素

    2. element.send_keys("Hello, World!") # 在输入框中输入文本

  7. 等待元素加载:使用显式等待等待元素出现或满足特定条件。

    复制代码
    1. from selenium.webdriver.support.ui import WebDriverWait

    2. from selenium.webdriver.common.by import By

    3. from selenium.webdriver.support import expected_conditions as EC

    4. element = WebDriverWait(driver, 10).until(

    5. EC.presence_of_element_located((By.ID, "element_id"))

    6. )

  8. 浏览器操作:

    复制代码
    1. driver.back() # 后退

    2. driver.forward() # 前进

    3. driver.refresh() # 刷新页面

  9. 处理多窗口和框架:

    复制代码
    1. driver.switch_to.window(driver.window_handles[1]) # 切换到新窗口

    2. driver.switch_to.default_content() # 切回主文档

  10. 截图:

    driver.save_screenshot("screenshot.png") # 保存屏幕截图

  11. 关闭和退出:

复制代码
  1. driver.close() # 关闭当前窗口

  2. driver.quit() # 退出驱动程序

二 、自动登录

以下代码实现了自动打开浏览器,提交用户密码登录的逻辑,如果需要其他处理逻辑,可自行添加

复制代码
  1. import time

  2. from selenium import webdriver

  3. from selenium.webdriver.common.by import By

  4. # 初始化ChromeDriver实例

  5. driver = webdriver.Chrome()

  6. # 导航到目标网站

  7. driver.get("http://网站.com")

  8. # 找到并输入用户名和密码

  9. username = driver.find_element(By.CSS_SELECTOR, '.selectBox input[placeholder="请输入账号"]')

  10. password = driver.find_element(By.CSS_SELECTOR, '.selectBox input[placeholder="请输入密码"]')

  11. # 输入用户名,密码

  12. username.send_keys("账户")

  13. password.send_keys("密码")

  14. #登录

  15. button = driver.find_element(By.CSS_SELECTOR, ".submitButtom")

  16. button.click()

  17. # 测试是否成功 程序结束推出

  18. time.sleep(100)

  19. # 关闭浏览器

  20. driver.quit()

Selenium 还引入了更多功能,如改进的相对定位、集成DevTools协议、通过JavaScript执行操作等。您可以查看Selenium的官方文档以获取更多信息和详细用法示例:https://www.selenium.dev/documentation/en/

感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取

相关推荐
AI小云11 分钟前
【数据操作与可视化】Pandas数据处理-Series数据结构
开发语言·数据结构·python·numpy·pandas
Python大数据分析@23 分钟前
如何理解Python中的yield用法?
python
源码之家1 小时前
基于python新闻数据分析可视化系统 Hadoop 新闻平台 爬虫 情感分析 舆情分析 可视化 Django框架 vue框架 机器学习 大数据毕业设计✅
大数据·爬虫·python·数据分析·毕业设计·情感分析·新闻
IT油腻大叔1 小时前
DeepSeek-多层注意力计算机制理解
python·深度学习·机器学习
小呀小萝卜儿1 小时前
2025-11-17 学习记录--Python-机器学习作业:项目1 - PM2.5预测
python·学习·机器学习
闲人编程1 小时前
CPython与PyPy性能对比:不同解释器的优劣分析
python·算法·编译器·jit·cpython·codecapsule
kk哥88992 小时前
PyCharm 2025.1 是什么编程语言,如何安装
python·php
海拥2 小时前
基于 IPIDEA 的 SERP 结构化数据抽取与趋势监控的工程化实践
python
yivifu2 小时前
EPUB文件HTML批量修改避坑
python·epub·zipfile
B站_计算机毕业设计之家2 小时前
python手写数字识别系统 CNN算法 卷积神经网络 OpenCV和Keras模型 计算机视觉 (建议收藏)✅
python·深度学习·opencv·机器学习·计算机视觉·cnn