【UI自动化测试技术】自动化测试研究:Python+Selenium+Pytest+Allure,详解UI自动化测试,iframe、窗口等控件切换(精)(五)

导言

在上一篇文章里,我们一起学习了键盘事件、鼠标事件以及其它的一些特殊情况的处理。这篇文章我们一起学习Selenium中一些特殊窗口以及iframe,如何处理。

学习目标

  1. 了解对浏览器的基本功能操作(本节重点
  2. 学习如何对弹窗进行操作(本节重点
  3. 学习如何应对出现iframe框架时的解决方案
  4. 学习对浏览器窗口的基本操作

浏览器基本导航操作

python 复制代码
#导包
from selenium import webdriver
from time import sleep
#打开浏览器并进入项目地址
driver = webdriver.Chrome()
driver.get("https://www.csdnstudy/login.com.cn")
time.sleep(3)
#后退
driver.back
#前进
time.sleep(3)
driver.forward()
#刷新
time.sleep(3)
driver.refresh()

JavaScript 警告框,提示框和确认框的处理

WebDriver提供了⼀个API, ⽤于处理JavaScript提供的三种类型的原⽣弹窗消息. 这些弹窗由

浏览器提供限定的样式。

练习网址:练习地址

Alerts 警告框

python 复制代码
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from time import sleep
#打开浏览器并进入项目地址
driver = webdriver.Chrome()
#设置显性等待
wait = WebDriverWait(driver,5)
driver.get("https://www.selenium.dev/selenium/web/alerts.html#")
# 点击弹框案例,触发弹窗
driver.find_element(By.LINK_TEXT, "click me").click()
sleep(3)
# 显示等待,弹窗
alert = wait.until(EC.alert_is_present())
# 获取弹窗中的文本信息
text = alert.text
print(text)
#断言文本信息
assert text == "cheese", "弹窗打开失败,或者文本内容有误,请进行检查!"
# 点击弹窗确认
alert.accept()

Confirm 确认框

确认框类似于警告框, 不同之处在于⽤户还可以选择取消消息. 查看样例确认框。

python 复制代码
from selenium import webdriver
from time import sleep
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
driver = webdriver.Chrome()
# 实例化等待对象
wait = WebDriverWait(driver, 5)
# 打开网站
driver.get("https://www.selenium.dev/selenium/web/alerts.html#")
sleep(3)
# 点击弹框案例
driver.find_element(By.LINK_TEXT, "test confirm").click()
# 演示用,不用可删
sleep(3)
# 显示等待,弹窗
alert = wait.until(EC.alert_is_present())
# 获取弹窗中的文本信息
text = alert.text
print(text)
# 点击弹窗取消
alert.dismiss()

Prompt 提示框

提示框与确认框相似, 不同之处在于它们还包括⽂本输⼊. 与处理表单元素类似, 您可以使⽤

WebDriver的sendKeys来填写响应. 这将完全替换占位符⽂本. 按下取消按钮将不会提交任何

⽂本。

python 复制代码
import time

from selenium import webdriver
from time import sleep
from selenium.webdriver.common.alert import Alert
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
driver = webdriver.Chrome()
# 实例化等待对象
wait = WebDriverWait(driver, 5)
# 打开网站
driver.get("https://www.selenium.dev/selenium/web/alerts.html#")
sleep(3)
# 点击弹框案例
driver.find_element(By.LINK_TEXT, "prompt happen").click()
# 显示等待,弹窗
# alert = wait.until(EC.alert_is_present())
# 另一种获取alert方式,代替driver.switch_to.alert
alert = Alert(driver)
sleep(3)
# 实际会在点击确认警告框后,提交发送的文本信息
alert.send_keys("Selenium")
time.sleep(3)
text = alert.text
print(text)
# 点击弹窗取消
alert.accept()

结尾

本篇文章,我们学习了浏览器的基本操作以及JavaScript 警告框,提示框和确认框的处理,在下一篇文章里,我们将学习剩下的两个学习目标。也是我们这个阶段的重点,我们将会用大量篇幅去讲解和学习。

下一篇文章,再见!感谢你的阅读,本套教程为手敲代码,如有疏漏或错误,请见谅,可以在评论区指出,感谢!

相关推荐
程序员爱钓鱼6 小时前
Python编程实战 · 基础入门篇 | 变量与命名规范
后端·python
007php0076 小时前
猿辅导Java面试真实经历与深度总结(二)
java·开发语言·python·计算机网络·面试·职场和发展·golang
惊鸿.Jh6 小时前
C++可变参数模板
开发语言·python
MoRanzhi12036 小时前
Pillow 基础图像操作与数据预处理
图像处理·python·深度学习·机器学习·numpy·pillow·数据预处理
素素.陈6 小时前
向RAGFlow中上传文档到对应的知识库
开发语言·python
小宁爱Python6 小时前
Django Web 开发系列(一):视图基础与 URL 路由配置全解析
后端·python·django
空影星6 小时前
SiriKali,一款跨平台的加密文件管理器
python·编辑器·电脑·智能硬件
阿_旭6 小时前
基于深度学习的甲状腺结节智能检测分割与诊断系统【python源码+Pyqt5界面+数据集+训练代码】
人工智能·python·深度学习·甲状腺结节检测
woshihonghonga6 小时前
PyTorch矩阵乘法函数区别解析与矩阵高级索引说明——《动手学深度学习》3.6.3、3.6.4和3.6.5 (P79)
人工智能·pytorch·python·深度学习·jupyter·矩阵
AI云原生7 小时前
云原生系列Bug修复:Docker镜像无法启动的终极解决方案与排查思路
运维·服务器·python·docker·云原生·容器·bug