简介
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 Options
class 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 address
url = f"https://{ip_address}/"
self.driver.get(url)
# Set window size
self.driver.set_window_size(1198, 652)
# Adding waits for the elements
WebDriverWait(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 text
sn_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 address
with open('sn.txt', 'a') as file: # Use 'a' to append to the file
file.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 one
with 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自动化测试脚本的实现_其它综合_脚本之家