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

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

相关推荐
吃茄子的猫3 小时前
quecpython中&的具体含义和使用场景
开发语言·python
じ☆冷颜〃3 小时前
黎曼几何驱动的算法与系统设计:理论、实践与跨领域应用
笔记·python·深度学习·网络协议·算法·机器学习
数据大魔方4 小时前
【期货量化实战】日内动量策略:顺势而为的短线交易法(Python源码)
开发语言·数据库·python·mysql·算法·github·程序员创富
APIshop4 小时前
Python 爬虫获取 item_get_web —— 淘宝商品 SKU、详情图、券后价全流程解析
前端·爬虫·python
风送雨4 小时前
FastMCP 2.0 服务端开发教学文档(下)
服务器·前端·网络·人工智能·python·ai
效率客栈老秦4 小时前
Python Trae提示词开发实战(8):数据采集与清洗一体化方案让效率提升10倍
人工智能·python·ai·提示词·trae
哈里谢顿4 小时前
一条 Python 语句在 C 扩展里到底怎么跑
python
znhy_234 小时前
day46打卡
python
Edward.W5 小时前
Python uv:新一代Python包管理工具,彻底改变开发体验
开发语言·python·uv
小熊officer5 小时前
Python字符串
开发语言·数据库·python