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/

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

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

相关推荐
每天一个秃顶小技巧36 分钟前
02.Golang 切片(slice)源码分析(一、定义与基础操作实现)
开发语言·后端·python·golang
安特尼2 小时前
招行数字金融挑战赛数据赛道赛题一
人工智能·python·机器学习·金融·数据分析
serve the people2 小时前
解决osx-arm64平台上conda默认源没有提供 python=3.7 的官方编译版本的问题
开发语言·python·conda
多多*3 小时前
Java反射 八股版
java·开发语言·hive·python·sql·log4j·mybatis
正在走向自律3 小时前
从0到1:Python机器学习实战全攻略(8/10)
开发语言·python·机器学习
西西弗Sisyphus4 小时前
Python 处理图像并生成 JSONL 元数据文件 - 灵活text版本
开发语言·python
Taichi呀4 小时前
PyCharm 快捷键指南
ide·python·pycharm
Stara05114 小时前
基于注意力机制与iRMB模块的YOLOv11改进模型—高效轻量目标检测新范式
人工智能·python·深度学习·神经网络·目标检测·计算机视觉·yolov11
Python猫4 小时前
付费专栏·Python潮流周刊电子书合集(epub、pdf、markdown)下载
python·计算机·pdf·电子书·资料
强化学习与机器人控制仿真5 小时前
openpi 入门教程
开发语言·人工智能·python·深度学习·神经网络·机器人·自动驾驶