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

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

相关推荐
毛飞龙5 小时前
Python类(class)参数self的理解
python··self
魔尔助理顾问5 小时前
系统整理Python的循环语句和常用方法
开发语言·后端·python
颜颜yan_7 小时前
Python面向对象编程详解:从零开始掌握类的声明与使用
开发语言·redis·python
我的ID配享太庙呀8 小时前
Django 科普介绍:从入门到了解其核心魅力
数据库·后端·python·mysql·django·sqlite
@蓝莓果粒茶9 小时前
LeetCode第350题_两个数组的交集II
c++·python·学习·算法·leetcode·职场和发展·c#
FinAnalyzer9 小时前
如何在 InsCodeAI 上搭建并使用 Jupyter Notebook 环境?
ide·python·jupyter
java1234_小锋9 小时前
【NLP舆情分析】基于python微博舆情分析可视化系统(flask+pandas+echarts) 视频教程 - 微博文章数据可视化分析-文章分类下拉框实现
python·自然语言处理·flask
檀越剑指大厂9 小时前
【Python系列】Flask 应用中的主动垃圾回收
开发语言·python·flask
檀越剑指大厂9 小时前
【Python系列】使用 memory_profiler 诊断 Flask 应用内存问题
开发语言·python·flask
WXX_s9 小时前
【OpenCV篇】OpenCV——03day.图像预处理(2)
人工智能·python·opencv·学习·计算机视觉