【测试】自动化测试函数介绍——web 测试

前提条件:

安装好:webdriver-manager 和 selenium 库

python 复制代码
pip install webdriver-manager
python 复制代码
pip install selenium==4.0.0

注意:4.0.0 是版本号

一、常用函数

web 测试代码的基本框架:

python 复制代码
import time
from zoneinfo import reset_tzpath

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
from webdriver_manager.chrome import ChromeDriverManager

# 编写自动化脚本------具体步骤
# 1.打开浏览器------使用驱动来打开
ChromeIns=ChromeDriverManager().install()#安装谷歌浏览器驱动,返回值是一个驱动路径
# 创建谷歌浏览器的驱动对象
driver=webdriver.Chrome(service=Service(ChromeIns))
time.sleep(2)
# 2.输入百度网址:https://www.baidu.com
driver.get("https://www.baidu.com")

# 3. 找到百度输入框,输入关键字:"鞠婧祎"
driver.find_element(By.CSS_SELECTOR,"#chat-textarea").send_keys("鞠婧祎")

driver.find_element(By.CSS_SELECTOR,"#chat-textarea").clear()#清空文本

driver.find_element(By.CSS_SELECTOR,"#chat-textarea").send_keys("赵露思")
# 4.点击百度一下按钮
driver.find_element(By.CSS_SELECTOR,"#chat-submit-button").click()
time.sleep(5)
# # 5.关闭浏览器
driver.quit()

查找元素:find_element(方式,"元素"),只能查找一个元素

find_elements(方式,"元素"),查找同一个元素的不同的值:就是变量一样,值不一样;

cpp 复制代码
ret = driver.find_elements(By.CSS_SELECTOR,"#hotsearch-content-wrapper > li")
for t in ret:
    print(t.text)#获取每个元素对应的文本

常见的元素定位方式非常多,如 id,classname,tagname,xpath,cssSelector

常用的主要由 cssSelector 和 xpath

cpp 复制代码
# 4.点击百度一下按钮
driver.find_element(By.XPATH,"//*[@id='chat-submit-button']").click()

xpath:例如://*@id="chat-submit-button"

//* :获取 html 上所有的节点

// 指定节点:获取HTML页面指定的节点

sends_keys:模拟键盘输入数据;

click():点击,或者提交对象;

clear():清空文本;注意:连续的 send_keys 会把输入的文本拼接在一起,无法达到 clear 的效果;

cpp 复制代码
driver.find_element(By.CSS_SELECTOR,"#chat-textarea").send_keys("鞠婧祎")
time.sleep(1)
driver.find_element(By.CSS_SELECTOR,"#chat-textarea").clear()#清空文本
time.sleep(3)
driver.find_element(By.CSS_SELECTOR,"#chat-textarea").send_keys("赵露思")

text():获取文本

注意:文本 != 属性,例如:按钮上的文字就是属性

cpp 复制代码
t=driver.find_element(By.CSS_SELECTOR,"#chat-submit-button").text
print(t)

get_attribute():获取属性信息

cpp 复制代码
t=driver.find_element(By.CSS_SELECTOR,"#chat-submit-button").get_attribute("属性")
print(t)

driver.quit()

title:获取网页的标题

current_url:获取当前的网页的网址

cpp 复制代码
t=driver.title
print(t)
t=driver.current_url
print(t)

使用场景:页面元素可点击的跳转的清空下,用来检测跳转的结果是否是正确的;

二、窗口

当我们切换页面时,我们要更换页面的句柄:

cpp 复制代码
ChromeIns=ChromeDriverManager().install()#安装谷歌浏览器驱动,返回值是一个驱动路径
# 创建谷歌浏览器的驱动对象
driver=webdriver.Chrome(service=Service(ChromeIns))
time.sleep(2)
# 2.输入百度网址:https://www.baidu.com
driver.get("https://www.baidu.com")
curHandle = driver.current_window_handle#获取当前的网页的句柄
print(driver.title)
print(driver.current_url)
driver.find_element(By.CSS_SELECTOR,"#hotsearch-content-wrapper > li:nth-child(1) > a").click()
allhandle = driver.window_handles#获取所有打开网页的句柄
for handle in allhandle:
    if handle != curHandle:
        driver.switch_to.window(handle)#切换句柄
print(driver.title)
print(driver.current_url)
driver.quit()
相关推荐
SeaTunnel9 小时前
从 Python Script 地狱到标准化数据集成框架
大数据·开发语言·python·程序员·代码·seatunnel
深度研习笔记9 小时前
OpenCV工业视觉实战09|项目EXE打包+工控机无环境部署+后台常驻运行,彻底脱离Python环境,完成项目最终交付
python·opencv·webpack
CCPC不拿奖不改名10 小时前
大模型推理架构与开源生态知识整理
数据库·windows·python·架构·langchain·开源·github
小小测试开发10 小时前
Playwright vs Selenium vs Cypress:从浏览器协议到 API 设计的全面对比与实测
人工智能·selenium·测试工具
Marst Code10 小时前
(python)2026Plotly 库评估:交互式可视化到底值不值得引入?
开发语言·python
databook10 小时前
当散点图不够用时:用 t-SNE 可视化多维数据
python·数据分析·数据可视化
我的xiaodoujiao13 小时前
快速学习Python基础知识详细图文教程9--函数进阶
开发语言·python·学习·测试工具
weixin_4080996713 小时前
2026 图片去水印 API 接口完全指南:一键去除图片水印(附 Python/Java/PHP/C# 示例)
java·python·php·图片处理·api调用·图片去水印·石榴智能
去码头整点薯条ing13 小时前
某当网登录滑块【协议+OCR】
爬虫·python·ocr
川石课堂软件测试14 小时前
安全测试|常见SQL注入攻击方式、实例及预防
服务器·数据库·sql·功能测试·测试工具·安全·单元测试