【测试】自动化测试函数介绍——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()
相关推荐
清水白石0088 分钟前
Python 内存陷阱深度解析——浅拷贝、深拷贝与对象复制的正确姿势
开发语言·python
国家二级编程爱好者11 分钟前
删除typora文档没有引用的资源文件
git·python
进击的雷神12 分钟前
邮箱编码解码、国际电话验证、主办方过滤、多页面深度爬取——柬埔寨塑料展爬虫四大技术难关攻克纪实
爬虫·python
深蓝电商API1 小时前
多线程 vs 异步 vs 多进程爬虫性能对比
爬虫·python
进击的雷神1 小时前
相对路径拼接、TEL前缀清洗、多链接过滤、毫秒级延迟控制——日本东京塑料展爬虫四大技术难关攻克纪实
爬虫·python
云溪·1 小时前
Milvus向量数据库混合检索召回案例
python·ai·milvus
柒.梧.1 小时前
Java集合核心知识点深度解析:数组与集合区别、ArrayList原理及线程安全问题
java·开发语言·python
AsDuang2 小时前
Python 3.12 MagicMethods - 49 - __imatmul__
开发语言·python
小湘西2 小时前
拓扑排序(Topological Sort)
python·设计模式
北京地铁1号线2 小时前
快手面试题:全局解释器锁
python·gil