【测试】自动化测试函数介绍——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()
相关推荐
a7963lin10 小时前
Python数据分析如何识别异常值_IQR四分位距检测法实战
jvm·数据库·python
m0_6138562910 小时前
如何解决宝塔面板Web端文件管理器打开目录时反应极其缓慢
jvm·数据库·python
wltx168810 小时前
独立站搭建需要做氨氮检测仪展示吗?
人工智能·python
The_superstar610 小时前
衡山派D133EBS入门笔记
笔记·python·c·衡山派·小曹越
Air_July10 小时前
Brower User Web UI部署详细步骤
人工智能·python·测试工具
m0_6138562911 小时前
mysql如何优化重复索引_mysql冗余索引查找与处理
jvm·数据库·python
四维迁跃11 小时前
Python Web开发如何防范SQL注入_使用参数化查询与ORM实践
jvm·数据库·python
噜噜噜阿鲁~11 小时前
python学习笔记 | 8.3、函数式编程-匿名函数
笔记·python·学习
YJlio11 小时前
Windows Internals 读书笔记 10.3.3:Task Scheduler 架构详解
人工智能·windows·笔记·python·学习·chatgpt·架构
2401_8330336211 小时前
如何自动更新SQL标签状态_利用触发器实现基于逻辑的状态机
jvm·数据库·python