Selenium成长之路-19alert/prompt/confirm弹框处理

简介: Selenium成长之路-19alert/prompt/confirm弹框处理

webdriver 中处理 JavaScript 所生成的 alert、confirm 以及 prompt 是很简单的。具体思路是使用 switch_to.alert()方法定位到 alert/confirm/prompt。然后使用 text/accept/dismiss/send_keys 按需进行操做。


先来看看各个弹窗的样式:


alert弹窗:


image.png


confirm弹窗


image.png


prompt弹窗


image.png



再来看看Alert具体操作:



.text       返回alert/confirm/prompt中的文字信息


.accpet   点击确认按钮


.dismiss    点击取消按钮


.send_keys   输入值→主要针对prompt弹窗使用


.authenticate   验证,针对需要身份验证的alert


实例代码如下:


alert操作


# coding = utf-8
from selenium import  webdriver
from selenium.webdriver.common.by import By
import time
from selenium.webdriver.common.alert import Alert
driver = webdriver.Chrome()
print("---------alert操作实例-------")
url1 = "http://sahitest.com/demo/alertTest.htm"
driver.get(url=url1)
driver.maximize_window()
#定位到alert按钮
driver.find_element(By.XPATH,"//input[@id = 'b1']").click()
#通过switch_to_alert切换到alert
a1 =driver.switch_to.alert
#点击alert的确定按钮
a1.accept()
time.sleep(2)
#打印alert信息
print(a1.text)


confirm操作:


# coding = utf-8
from selenium import  webdriver
from selenium.webdriver.common.by import By
import time
from selenium.webdriver.common.alert import Alert
driver = webdriver.Chrome()
print("---------confirm-------")
url2 = "http://sahitest.com/demo/confirmTest.htm"
# driver= webdriver.Firefox()
driver.get(url=url2)
driver.maximize_window()
#定位到check for prompt按钮
driver.find_element(By.XPATH,"//input[@name = 'b1']").click()
#直接实例化alert对象
a2 = Alert(driver)
time.sleep(2)
print(a2.text)
# a2.accept()
a2.dismiss()
driver.quit()


prompt操作


# coding = utf-8
from selenium import  webdriver
from selenium.webdriver.common.by import By
import time
from selenium.webdriver.common.alert import Alert
driver = webdriver.Chrome()
print("---------prompt-------")
url3 = "http://sahitest.com/demo/promptTest.htm"
driver.maximize_window()
driver.get(url=url3)
driver.find_element(By.XPATH,"//input[@name = 'b1']").click()
time.sleep(2)
#通过switch_to.alert切换到alert
a3 = driver.switch_to.alert
print(a3.text)
#在prompt型alert中输入字符
a3.send_keys("selenium")
time.sleep(2)
a3.accept()
#页面文本框输出的信息
val = driver.find_element(By.XPATH,"//input[@name = 't1']").get_attribute('value')
time.sleep(3)
print(val)
driver.quit()



以上就是alert/confirm/prompt弹窗的处理方法。

目录
相关文章
|
JavaScript
selenium--操作JS弹框
selenium--操作JS弹框
selenium+python:点击元素、alert弹框、鼠标操作(左键点击、右键点击、双击、鼠标悬浮)、下拉选项框、窗口切换等操作的处
selenium+python:点击元素、alert弹框、鼠标操作(左键点击、右键点击、双击、鼠标悬浮)、下拉选项框、窗口切换等操作的处
|
前端开发
Selenium系列(九) - 针对alert窗口的处理(警告框、确认框、对话框)和源码解读
Selenium系列(九) - 针对alert窗口的处理(警告框、确认框、对话框)和源码解读
388 0
Selenium系列(九) - 针对alert窗口的处理(警告框、确认框、对话框)和源码解读
|
Web App开发 JavaScript 测试技术
|
Web App开发 Python
Selenium2+python自动化16-alert\confirm\prompt
前言    不是所有的弹出框都叫alert,在使用alert方法前,先要识别出到底是不是alert。先认清楚alert长什么样子,下次碰到了,就可以用对应方法解决。 alert\confirm\prompt弹出框操作主要方法有: text:获取文本值 accept() :点击"确认" di...
1370 0
|
11天前
|
Web App开发 前端开发 JavaScript
探索Python科学计算的边界:利用Selenium进行Web应用性能测试与优化
【10月更文挑战第6天】随着互联网技术的发展,Web应用程序已经成为人们日常生活和工作中不可或缺的一部分。这些应用不仅需要提供丰富的功能,还必须具备良好的性能表现以保证用户体验。性能测试是确保Web应用能够快速响应用户请求并处理大量并发访问的关键步骤之一。本文将探讨如何使用Python结合Selenium来进行Web应用的性能测试,并通过实际代码示例展示如何识别瓶颈及优化应用。
42 5
|
14天前
|
Java 测试技术 C#
自动化测试之美:从Selenium到Appium
【10月更文挑战第3天】在软件开发的海洋中,自动化测试如同一艘航船,引领着质量保证的方向。本文将带你领略自动化测试的魅力,从Web端的Selenium到移动端的Appium,我们将一探究竟,看看这些工具如何帮助我们高效地进行软件测试。你将了解到,自动化测试不仅仅是技术的展示,更是一种提升开发效率和产品质量的智慧选择。让我们一起启航,探索自动化测试的世界!
|
11天前
|
JavaScript 前端开发 测试技术
精通Selenium:从基础到高级的网页自动化测试策略
【10月更文挑战第6天】随着Web应用变得越来越复杂,手动进行功能和兼容性测试变得既耗时又容易出错。自动化测试因此成为了现代软件开发不可或缺的一部分。Selenium是一个强大的工具集,它支持多种编程语言(包括Python),允许开发者编写脚本来模拟用户与Web页面的交互。本文将带领读者从Selenium的基础知识出发,逐步深入到高级的应用场景,通过丰富的代码示例来展示如何高效地进行网页自动化测试。
33 5
|
15天前
|
Web App开发 IDE 测试技术
自动化测试的利器:Selenium 框架深度解析
【10月更文挑战第2天】在软件开发的海洋中,自动化测试犹如一艘救生艇,让质量保证的过程更加高效与精准。本文将深入探索Selenium这一强大的自动化测试框架,从其架构到实际应用,带领读者领略自动化测试的魅力和力量。通过直观的示例和清晰的步骤,我们将一起学习如何利用Selenium来提升软件测试的效率和覆盖率。