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/

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

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

相关推荐
费弗里1 小时前
Python全栈应用开发利器Dash 3.x新版本介绍(1)
python·dash
李少兄9 天前
解决OSS存储桶未创建导致的XML错误
xml·开发语言·python
就叫飞六吧9 天前
基于keepalived、vip实现高可用nginx (centos)
python·nginx·centos
Vertira9 天前
PyTorch中的permute, transpose, view, reshape和flatten函数详解(已解决)
人工智能·pytorch·python
学Linux的语莫9 天前
python基础语法
开发语言·python
WIN赢9 天前
PostMan使用
测试工具·lua·postman
匿名的魔术师9 天前
实验问题记录:PyTorch Tensor 也会出现 a = b 赋值后,修改 a 会影响 b 的情况
人工智能·pytorch·python
Ven%9 天前
PyTorch 张量(Tensors)全面指南:从基础到实战
人工智能·pytorch·python
mahuifa9 天前
PySide环境配置及工具使用
python·qt·环境配置·开发经验·pyside
大熊猫侯佩9 天前
ruby、Python 以及 Swift 语言关于 “Finally” 实现的趣谈
python·ruby·swift