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/

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

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

相关推荐
数据智能老司机4 小时前
精通 Python 设计模式——分布式系统模式
python·设计模式·架构
数据智能老司机5 小时前
精通 Python 设计模式——并发与异步模式
python·设计模式·编程语言
数据智能老司机5 小时前
精通 Python 设计模式——测试模式
python·设计模式·架构
数据智能老司机5 小时前
精通 Python 设计模式——性能模式
python·设计模式·架构
c8i5 小时前
drf初步梳理
python·django
每日AI新事件5 小时前
python的异步函数
python
这里有鱼汤7 小时前
miniQMT下载历史行情数据太慢怎么办?一招提速10倍!
前端·python
databook16 小时前
Manim实现脉冲闪烁特效
后端·python·动效
程序设计实验室16 小时前
2025年了,在 Django 之外,Python Web 框架还能怎么选?
python
倔强青铜三18 小时前
苦练Python第46天:文件写入与上下文管理器
人工智能·python·面试