【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 警告框,提示框和确认框的处理,在下一篇文章里,我们将学习剩下的两个学习目标。也是我们这个阶段的重点,我们将会用大量篇幅去讲解和学习。

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

相关推荐
wh39332 分钟前
使用Python将PDF转换成word、PPT
python·pdf·word
船长@Quant19 分钟前
数学视频动画引擎Python库 -- Manim Voiceover 语音服务 Speech Services
python·数学·manim·动画引擎·语音旁白
好开心啊没烦恼2 小时前
Python 数据分析:计算,分组统计1,df.groupby()。听故事学知识点怎么这么容易?
开发语言·python·数据挖掘·数据分析·pandas
lljss20203 小时前
Python11中创建虚拟环境、安装 TensorFlow
开发语言·python·tensorflow
空中湖3 小时前
tensorflow武林志第二卷第九章:玄功九转
人工智能·python·tensorflow
CodeCraft Studio4 小时前
CAD文件处理控件Aspose.CAD教程:使用 Python 将绘图转换为 Photoshop
python·photoshop·cad·aspose·aspose.cad
Python×CATIA工业智造6 小时前
Frida RPC高级应用:动态模拟执行Android so文件实战指南
开发语言·python·pycharm
onceco6 小时前
领域LLM九讲——第5讲 为什么选择OpenManus而不是QwenAgent(附LLM免费api邀请码)
人工智能·python·深度学习·语言模型·自然语言处理·自动化
狐凄7 小时前
Python实例题:基于 Python 的简单聊天机器人
开发语言·python
悦悦子a啊8 小时前
Python之--基本知识
开发语言·前端·python