【测试】自动化测试函数介绍——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()
相关推荐
逄逄不是胖胖2 小时前
《动手学深度学习》-60translate实现
人工智能·python·深度学习
爱学习的阿磊2 小时前
Python上下文管理器(with语句)的原理与实践
jvm·数据库·python
m0_736919102 小时前
Python面向对象编程(OOP)终极指南
jvm·数据库·python
one____dream2 小时前
【网安】Reverse-非常规题目
linux·python·安全·网络安全·ctf
冷雨夜中漫步2 小时前
python反转列表reverse()和[::-1]哪个效率更高
开发语言·python
rainbow68892 小时前
Python面向对象编程与异常处理实战
开发语言·python
weixin199701080162 小时前
锦程物流item_get - 获取详情接口对接全攻略:从入门到精通
数据库·python
2501_907136823 小时前
基于Python+QT6的移动硬盘弹出工具
python·软件需求
Wpa.wk3 小时前
容器编排 - K8s - 配置文件参数说明和基础命令
经验分享·测试工具·docker·云原生·容器·kubernetes