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/

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

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

相关推荐
敲键盘的小夜猫2 分钟前
大模型智能体核心技术:CoT与ReAct深度解析
人工智能·python
华科云商xiao徐9 分钟前
Python利用Scrapy框架部署分布式爬虫
python·scrapy
小前端大牛马10 分钟前
java教程笔记(十四)-线程池
java·笔记·python
not coder10 分钟前
Selenium 查找页面元素的方式
selenium·测试工具
老歌老听老掉牙35 分钟前
旋量理论:刚体运动的几何描述与机器人应用
python·算法·机器学习·机器人·旋量
我是初九1 小时前
【李沐-动手学深度学习v2】1.Colab学习环境配置
人工智能·python·学习·colab
失败又激情的man1 小时前
python爬虫之数据存储
前端·数据库·python
一刀到底2111 小时前
Python 高级应用10:在python 大型项目中 FastAPI 和 Django 的相互配合
python·django·fastapi
MoRanzhi12031 小时前
245. 2019年蓝桥杯国赛 - 数正方形(困难)- 递推
python·算法·蓝桥杯·国赛·递推·2019