【UI自动化测试】7_web自动化测试 _页面交互操作(重点)
文章目录一、下拉框1.1 下拉选择框处理方式1.1.1 方法1元素定位1.1.2 方法2使用 Select类1.2 Select类-案例二、弹出框2.1 弹出框类型2.2 JS弹出框处理方法2.3 JS弹出框处理-案例三、滚动条3.1滚动条操作-实现方法3.2 滚动条操作-案例3.3 滚动条操作-总结一、下拉框1、下拉框分类自定义:通过div等布局标签设计的下拉框。HTML原生态下拉框: 。2、下拉框处理方式①无论是自定义还是HTML原生态的下拉框都可以直接通过元素定位的方式直接完成选项选择。②针对于原生态标签的下拉框提供了Select对象实现选项选择固定方法如通过元素定位方式实现选项选择会出现大批量的元素定位而通过Select对象对于select下拉框实现选项选择只需要定位一次 元素定位的方式去操作下拉框: - 操作繁琐 - 影响脚本运行效率3、select标签的下拉框选择方法:分析是否是select的下拉框获取所要选择下拉框对象执行选项的选择1.1 下拉选择框处理方式1.1.1 方法1元素定位思路 先定位到要操作的option元素 然后执行点击操作# 点击广州driver.find_element(By.CSS_SELECTOR,[valuegz]).click()sleep(2)# 上海driver.find_element(By.CSS_SELECTOR,[valuesh]).click()sleep(2)# 北京driver.find_element(By.CSS_SELECTOR,[valuebj]).click()1.1.2 方法2使用 Select类1.导包 Select类--fromselenium.webdriver.support.selectimportSelect2.实例化Select类 selectSelect(element)3.调用方法 select.select_by_index(index)说明 Select类是Selenium为操作select标签特殊封装的。 实例化对象 selectSelect(element)element:select标签对应的元素 通过元素定位方式获取定位的是父级 例如 driver.find_element_by_id(selectA)操作方法1.select.select_by_index(index)--根据option索引来定位 从0开始2.select.select_by_value(value)--根据option属性 value值来定位3.select.select_by_visible_text(text)--根据option显示文本来定位显示标签中的文字 注意1.Select类是通过select标签来控制其下的option元素2.element:只能是select标签1.2 Select类-案例fromtimeimportsleepfromseleniumimportwebdriverfromselenium.webdriver.common.byimportByfromselenium.webdriver.support.selectimportSelect# 1、获取浏览器driverwebdriver.Chrome()# 2、打开urldriver.get(file:///Users/lgy/Documents/fodder/web/%E6%B3%A8%E5%86%8CA.html)# 3、再定3s--代替测试步骤# 获取页面下拉框对象# ①定位下拉框元素 selecteldriver.find_element(By.ID,selectA)# ②实例化Select对象selectSelect(el)# 使用下标定位广州select.select_by_index(2)sleep(2)# 使用value定位上海select.select_by_value(sh)# 使用文本定位 北京sleep(2)select.select_by_visible_text(北京)# 4、关闭浏览器sleep(3)driver.quit()二、弹出框为什么要处理弹出框 -- 如果页面操作过程中有弹窗出现不处理无法继续对页面操作。2.1 弹出框类型1、自定义弹出框可以直接通过web浏览器开发者工具查看到具体的元素信息处理方式直接元素定位后点击确定或取消即可。2、JS弹出框通过JS函数实现通过web浏览器开发者工具无法查看到元素信息常见S弹出框形式:alert警告框)、confirm确认框)、prompt(提示框)不能通过元素定位进行处理!DOCTYPEhtmlhtmllangenheadmetacharsetUTF-8titleTitle/title/headbodyinputtypebuttonvaluealert警告框onclickalert(我是警告框)inputtypebuttonvalueconfirm确认框onclickconfirm(我是确认框)inputtypebuttonvalueprompt提示框onclickprompt(我是提示框)/body/html2.2 JS弹出框处理方法说明 Selenium中对处理弹出框的操作 有专用的处理方法 并且处理的方法都一样 1. 获取弹出框对象对于警告框、确认框、警示框都一样 alert driver.switch_to.alert 2. 弹出框处理方法 alert.text -- 返回alert/confirm/prompt中的文字信息 alert.accept() -- 接受弹出框选项 alert.dismiss() -- 取消弹出框选项确认框没有取消按钮取消方法一样生效提示无论以上哪个对话框都可以使用取消、同意因为调用的是后台的事件根页面显示的按钮数量无关。注意1.driver.switch_to.alert 方法适合以上三种类型对话框调用时没有括号2.获取文本的方法调用时没有括号 如alert.text3.在项目中不是所有的小窗口都是以上三种对话框。2.3 JS弹出框处理-案例fromtimeimportsleepfromseleniumimportwebdriverfromselenium.webdriver.common.byimportBy# 1、获取浏览器driverwebdriver.Chrome()# 2、打开urldriver.get(file:///Users/lgy/Documents/fodder/web/%E6%B3%A8%E5%86%8CA.html)# 3、暂停3s—代替测试步骤# 点击页面alert按钮driver.find_element(By.ID,alerta).click()time.sleep(2)# ①分析是否是js弹出框通过右键检查无检查选项则获取弹出框对象的方式处理# ②获取弹出框对象alertdriver.switch_to.alert# 获取弹出框文本print(alert.text)# 点击弹出框确定按钮alert.accept()time.sleep(3)# 点击弹出框取消按钮alert.dismiss()# 取消# 输入用户名driver.find_element(By.CSS_SELECTOR,#userA).send_keys(admin)# 4、关闭浏览器sleep(3)driver.quit()三、滚动条1、滚动条 一种可控制页面显示范围的组件。2、为什么要学习滚动条操作1、在HTML页面中 由于前端技术框架的原因 页面元素为动态显示 元素根据滚动条的下拉而被加载。 2、页面注册同意条款 需要滚动条到最底层 才能点击同意。 3、在web自动化中有些特殊场景如滚动条拉倒最底层指定按钮才可用。3.1滚动条操作-实现方法说明 selenium中并没有直接提供操作滚动条的方法 但是它提供了可执行JavaScript脚本的方法 所以我们可以通过JavaScript脚本来达到操作滚动条的目的。# 1. 设置JavaScript脚本控制滚动条0: 左边距 --》水平滚动条 10000上边距 --垂直滚动条jswindow.scrollTo(0,1000)# (左边距0,左边距不动。上边距1000离上边距1000像素。单位像素)# 2. selenium调用执行JavaScript脚本的方法driver.execute_script(js)3.2 滚动条操作-案例# 导包fromseleniumimportwebdriverfromtimeimportsleep# 获取浏览器驱动对象driverwebdriver.Chrome()# 最大化浏览器driver.maximize_window()# 隐式等待driver.implicitly_wait(30)# 打开urlurlrhttps://news.baidu.com/driver.get(url) 目标滚动条操作 需求 1. 启动暂停2秒 2. 滚动条拉倒最底下 sleep(2)# 第一步 设置js控制滚动条语句jswindow.scrollTo(0, 10000)# 第二步 调用执行js语句方法driver.execute_script(js)# 暂停 2sleep(2)# 关闭驱动对象driver.quit()3.3 滚动条操作-总结1为什么要操作滚动条 在web自动化中有些特殊场景如滚动条拉倒最底层指定按钮才可用。2如何操作 第一步设置操作滚动条操作语句 如jswindow.scrollTo(0,10000)0:左边距--》水平滚动条10000上边距--垂直滚动条 第二步调用执行js方法将设置js语句传入方法中 方法driver.execute_script(js)3说明 在selenium中没有直接提供定位滚动条组件方法但是它提供了执行js语句方法可以通过js语句来控制滚动条操作。

相关新闻

Python 微信小程序的订奶奶茶鲜奶配送系统

Python 微信小程序的订奶奶茶鲜奶配送系统

文章目录技术架构设计微信小程序端实现后端服务开发数据库设计实时配送追踪性能优化与安全测试与部署扩展功能建议系统设计与实现的思路主要技术与实现手段源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!技术架构设计 采用前后端分离架构…

2026/7/4 7:51:22 阅读更多 →
轻松调试iOS应用的利器——DebugSwift

轻松调试iOS应用的利器——DebugSwift

DebugSwift - 提升 iOS 应用调试体验的工具包 🚀 在开发 iOS 应用时,调试是一个不可或缺的环节,而 DebugSwift 正是为了优化这个过程而诞生的一个强大工具包。无论是处理故障、优化性能,还是实时监控应用状态,DebugSw…

2026/7/5 5:51:12 阅读更多 →
真心不骗你!专科生专属的一键生成工具 —— 千笔·专业论文写作工具

真心不骗你!专科生专属的一键生成工具 —— 千笔·专业论文写作工具

你是否曾为论文选题发愁?是否在深夜面对空白文档无从下笔?是否反复修改却仍不满意?专科生的你,常常在学术写作中感到力不从心。别再让论文成为毕业路上的拦路虎,千笔AI,专为专科生打造的智能写作工具&#…

2026/5/17 5:28:16 阅读更多 →

最新新闻

微信好友关系检测神器:一键找出偷偷删掉或拉黑你的人 [特殊字符]

微信好友关系检测神器:一键找出偷偷删掉或拉黑你的人 [特殊字符]

微信好友关系检测神器:一键找出偷偷删掉或拉黑你的人 😱 【免费下载链接】WechatRealFriends 微信好友关系一键检测,基于微信ipad协议,看看有没有朋友偷偷删掉或者拉黑你 项目地址: https://gitcode.com/gh_mirrors/we/WechatRe…

2026/7/5 5:51:45 阅读更多 →
Git 功能发展历史

Git 功能发展历史

目录 Git 的诞生与设计哲学2005—2008:从原型到 1.0 的奠基期Git 1.5—1.9:基础功能完善期Git 2.0:里程碑式的行为变更Git 2.1—2.22:渐进式改进与体验优化Git 2.23:switch 与 restore 的引入Git 2.24—2.29&#xff…

2026/7/5 5:49:45 阅读更多 →
终极解决方案:KMS智能激活脚本完整指南 - 彻底告别Windows和Office激活烦恼

终极解决方案:KMS智能激活脚本完整指南 - 彻底告别Windows和Office激活烦恼

终极解决方案:KMS智能激活脚本完整指南 - 彻底告别Windows和Office激活烦恼 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 还在为Windows系统频繁弹出激活提示而烦恼吗?…

2026/7/5 5:47:45 阅读更多 →
受够了记账 App 的广告和会员,我自己写了一个:完全免费、数据 100% 在本地、开源

受够了记账 App 的广告和会员,我自己写了一个:完全免费、数据 100% 在本地、开源

受够了记账 App 的广告和会员,我自己写了一个:完全免费、数据 100% 在本地、开源 先说结论:这是一个没有广告、没有会员、没有内购、不需要注册、不联网上传任何数据的记账 App。代码开源在 GitHub,Android 安装包直接从 Release…

2026/7/5 5:45:44 阅读更多 →
PyInstaller 打包 exe 图标不显示问题(AI生成)

PyInstaller 打包 exe 图标不显示问题(AI生成)

# PyInstaller 打包 exe 图标不显示?这篇文章帮你彻底解决!## 🔍 问题背景最近在用 PyInstaller 打包一个 PySide6 项目时,遇到了一个非常头疼的问题:**设置了图标但 exe 文件始终不显示**。经过一番折腾,终…

2026/7/5 5:45:44 阅读更多 →
知网查重太贵?2026年免费论文查重渠道汇总+PaperRed隐藏功能曝光

知网查重太贵?2026年免费论文查重渠道汇总+PaperRed隐藏功能曝光

2026年毕业季,知网查重一次要多少钱?答案是:本科论文约100-200元,硕博论文200-400元。而且很多学校只给1-2次免费查重机会,用完之后就得自费。对于预算有限的学生来说,这笔开销不算小。更让人头疼的是&…

2026/7/5 5:43:44 阅读更多 →

日新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻