自动化测试工具Selenium IDE

news/2024/9/26 1:23:35/

简介

Selenium IDE 是实现Web自动化的一种便捷工具,本质上它是一种浏览器插件。该插件支持Chrome和Firefox浏览器,拥有录制、编写及回放操作等功能,能够快速实现Web的自动化测试

使用场景

1、Selenium IDE本身的定位并不是用于复杂的自动化场景,而是用于一些对效率拥有极高要求的简易场景。

2、用于发现BUG,重现BUG,提高沟通效率。

3、提高用例执行效率,提高回归效率。

4、录制功能可以导出代码,节省自动代码编写时间。

下载安装

下载插件


下载路径:https://www.selenium.dev/selenium-ide/


                        

安装浏览器插件 selenium IDE.

以chrome浏览器为例。

1. 打开chrome浏览器

2.打开扩展程序

3.将下载好的selenium IDE插件拖拽到浏览器上

selenium IDE的使用

录制脚本

下面以录制 传智播客 的登录功能为例说明,登录账号:13000000001/caohongxing7604

在弹出窗口中选择“在新项目中录制一个新的用例”

在弹出窗口中,输入要录制的网址:传智播客

点击【ok】后输入要录制的网址

点击【START RECORDING】开始录制

系统会在浏览器中打开你给的网页,点击右上角的【登录】后,输入账户后,点击【确定】完成登录,登录后点击【退出】退出了登录状态

录制完成后点击,停止录制按钮

录制的脚本中的三列:

  • command列,是一个动作,例如:点击、输入等,
  • Target列:是动作操作的对象。例如 id=password,就是找到页面上id为“password”的元素,而linkText=“登录” ,就表示超链接文字为“登录”的元素
  • value列:是动作的参数,例如输入的文本等

回放脚本

回放脚本很简单,点击运行即可。

运行过程中,系统会启动浏览器,执行录制的动作

将测试代码导出成脚本

安装Python环境


下载Python安装包

访问Python官方网站(https://www.python.org/downloads/),根据您的操作系统选择对应的Python安装包进行下载。请确保下载最新稳定版本的Python。

安装Python

下载完成后,运行安装包并按照提示进行安装。在安装过程中,请确保勾选“Add Python to PATH”选项,以便在命令行中直接使用Python命令。

验证Python安装

安装完成后,打开命令行工具(Windows下为CMD或PowerShell,Mac和Linux下为Terminal),输入python --version命令,如果显示Python版本号,则说明安装成功。

使用pip安装Selenium库


打开命令行工具,在命令行中输入以下命令来安装Selenium:

pip install selenium

安装Selenium WebDriver

要使用python脚本调用浏览器执行命令,必须安装Selenium WebDriver。

1.下载地址

https://googlechromelabs.github.io/chrome-for-testing/

选择与您的Chrome浏览器版本相匹配的ChromeDriver进行下载。确保下载与您的操作系统相对应的版本。

2.解压ChromeDriver

下载完成后,将ChromeDriver的压缩包解压到您希望存放的位置。例如,您可以将其解压到chrome浏览器安装的同一目录下,或者解压到一个固定的路径下。

3.配置环境变量(可选)

为了方便使用,您可以将ChromeDriver的路径添加到系统的环境变量中。这样,无论您在哪个目录下运行Python脚本,都可以直接调用ChromeDriver

4.验证ChromeDriver安装

打开命令行工具,输入chromedriver --version命令,如果显示ChromeDriver的版本号,则说明安装和配置成功。

    

基于python环境Selenium + ChromeDriver使用

打开命令行工具,输入ChromeDriver运行ChromeDriver

打开pycharm运行python脚本,如根据ip地址批量复制网页序列号:

# Generated by Selenium IDE
import pytest
import time
import json
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Optionsclass TestCopysn():def setup_method(self, method):chrome_options = Options()chrome_options.add_argument("--ignore-certificate-errors")self.driver = webdriver.Chrome(options=chrome_options)self.vars = {}def teardown_method(self, method):self.driver.quit()def test_copysn(self, ip_address):# Construct URL from IP addressurl = f"https://{ip_address}/"self.driver.get(url)# Set window sizeself.driver.set_window_size(1198, 652)# Adding waits for the elementsWebDriverWait(self.driver, 10).until(EC.presence_of_element_located((By.ID, "usrName"))).send_keys("ADMIN")WebDriverWait(self.driver, 10).until(EC.presence_of_element_located((By.ID, "pwd"))).send_keys("PASSWD@1234")WebDriverWait(self.driver, 10).until(EC.element_to_be_clickable((By.ID, "login_word"))).click()WebDriverWait(self.driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, ".systemMenu > .trn"))).click()WebDriverWait(self.driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "#menu_sys_cmpn_overview > .trn"))).click()WebDriverWait(self.driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "#ubb_info_table > tbody:nth-child(3) td"))).click()WebDriverWait(self.driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "#ubb_info_table > tbody:nth-child(3) td"))).click()element = WebDriverWait(self.driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "#ubb_info_table > tbody:nth-child(3) td")))actions = ActionChains(self.driver)actions.double_click(element).perform()# Get the serial number textsn_text = WebDriverWait(self.driver, 10).until(EC.presence_of_element_located((By.CSS_SELECTOR, "#ubb_info_table > tbody:nth-child(3) td"))).text# Write the serial number to sn.txt with IP addresswith open('sn.txt', 'a') as file:  # Use 'a' to append to the filefile.write(f"{ip_address} {sn_text}\n")# For running the test directly
if __name__ == "__main__":test = TestCopysn()test.setup_method(None)try:# Read IP addresses from ip.txt and process each onewith open('ip.txt', 'r') as file:ip_addresses = file.read().splitlines()for ip in ip_addresses:test.test_copysn(ip)finally:test.teardown_method(None)


                        
原文链接:https://blog.csdn.net/Dxy1239310216/article/details/137869987

参考:cselenium IDE自动化测试脚本的实现_其它综合_脚本之家


http://www.ppmy.cn/news/1510402.html

相关文章

嵌入式面经篇六——寄存器与存储器

文章目录 前言一、寄存器与存储器1、ARM 的 31 个通用寄存器 R0~R15 中,程序计数器 PC 为 R15、程序链接寄存器 LR 为 R14、堆栈指针寄存器 SP 为 R13。2、寄存器掉电会丢失数据吗?3、NOR Flash 与 NAND Flash 的区别?4、SRAM、DRAM、SDRAM的…

掌握 Python 中的数据流

欢迎来到雲闪世界。在本文中,我将解决数据工程师在设计流数据管道时可能遇到的关键挑战。我们将探讨用例场景,提供 Python 代码示例,讨论使用流框架的窗口计算,并分享与这些主题相关的最佳实践。 在许多应用中,访问实…

Get content output from OpenAI library

题意:从 OpenAI 库中获取内容输出 问题背景: I prepare integration openAI API with Codeigniter 4, for this I use library: 我准备将 OpenAI API 集成到 Codeigniter 4 中,为此我使用了以下库: https://github.com/orhaner…

深度学习打卡T8

>- **🍨 本文为[🔗365天深度学习训练营]() 中的学习记录博客**https://mp.weixin.qq.com/s/0dvHCaOoFnW8SCp3JpzKxg >- **🍖 原作者:[K同学啊](https://mtyjkh.blog.csdn.net/)**https://mtyjkh.blog.csdn.net/ 这篇文章中…

ansible环境搭建

任务背景 公司的服务器越来越多, 维护⼀些简单的事情都会变得很繁琐。⽤ shell脚本来管理少量服务器效率还⾏, 服务器多了之后, shell脚本⽆ 法实现⾼效率运维。这种情况下,我们需要引⼊⾃动化运维⼯具, 对 多台服务器实现⾼效运维。 任务要求 通过管理服务器能够…

PRIDE PPP-AR单步调试

武汉大学于23年底开源了最新版PRIDE PPP-AR,新发布的版本增加了如下功能: (1)支持在任意双频无电离层组合上实现“全频率PPP-AR” (2)使用武汉大学最新的快速全频率相位钟/相位偏差产品实现L5/E6/E5b/E5/…

笔记:在WPF中如何注册控件级全局事件和应用程序级全局事件

一、目的:在WPF中如何注册控件级全局事件和应用程序级全局事件 二、实现 应用程序级全局事件 //注册应用程序级全局事件 EventManager.RegisterClassHandler(typeof(Button), Button.ClickEvent, new RoutedEventHandler(ic_event_Click)); 如上代码既会注册全局…

数据的动态舞蹈:SQL中的动态计算艺术

标题:数据的动态舞蹈:SQL中的动态计算艺术 在数据库的世界中,数据的动态计算是一种强大的技术,它允许我们在查询过程中实时地进行数值计算和逻辑判断。这种技术使得我们可以从原始数据中提取更深层次的见解和模式,而不…