Selenium自动化之弹窗处理

这篇具有很好参考价值的文章主要介绍了Selenium自动化之弹窗处理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 整理了一些软件测试方面的资料、面试资料(接口自动化、web自动化、app自动化、性能安全、测试开发等),有需要的小伙伴可以文末加入我的学习交流qun,无套路自行领取~ 

Selenium自动化之弹窗处理

1.前言

我们在使用Selenium做Web自动化测试时,页面经常出现弹窗,如果不处理后续的测试脚本就无法正常运行,今天我们就带大家一起来学习如何处理Web页面上的弹窗。

2.Web页面弹窗的分类

弹窗通常有3种:Alert类型弹框、Confirm类型弹框、Prompt类型弹框,这种我们无法通过定位元素来操作。它们的具体特点如下:

  • Alert弹窗:只有信息及确认按钮

Selenium自动化之弹窗处理

  • Confirm弹窗:在Alert弹窗基础上增加了取消按钮

Selenium自动化之弹窗处理

  • Prompt类型弹框:在Confirm的基础上增加了可输入文本内容的功能

Selenium自动化之弹窗处理

3.解决方案

selenium中提供了如下方法来处理弹窗,具体的解决方案如下:

from selenium import webdriver

driver = webdriver.Chrome()
driver.switch_to.alert.accept() #确定、同意;三种弹窗都可使用
driver.switch_to.alert.dismiss() #取消、不同意;confirm和prompt弹窗中使用
title = driver.switch_to.alert.text #打印弹窗信息
alert = driver.switch_to.alert #获取alert对象
alert.send_keys() #Prompt弹窗中输入内容

有些弹窗并非浏览器的alert 窗口,而是html元素,这种对话框只需要按照常规的定位页面元素进行处理即可

4.实战演练

import unittest
from selenium import webdriver
from time import sleep

class TestAlert(unittest.TestCase):
    def setUp(self):
        self.driver = webdriver.Chrome()
        self.driver.implicitly_wait(5)
        self.driver.maximize_window()

    def tearDown(self):
        self.driver.quit()

    def test_alert(self):
        self.driver.get(r'http://sahitest.com/demo/alertTest.htm')
        self.driver.find_element('name','b1').click()
        alert = self.driver.switch_to.alert
        print(alert.text)
        alert.accept()
        sleep(2)
    def test_confirm(self):
        self.driver.get(r'http://sahitest.com/demo/confirmTest.htm')
        self.driver.find_element('name','b1').click()
        alert = self.driver.switch_to.alert
        print(alert.text)
        alert.accept()
        # alert.dismiss()
        sleep(2)
    def test_prompt(self):
        self.driver.get(r'http://sahitest.com/demo/promptTest.htm')
        self.driver.find_element('name','b1').click()
        alert = self.driver.switch_to.alert
        print(alert.text)
        alert.send_keys("CR77777777777777777")
        sleep(1)
        alert.accept()
        sleep(2)

if __name__ == '__main__':
    unittest.main()

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

Selenium自动化之弹窗处理

 这些资料,对于从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助……如果你不想再体验一次自学时找不到资料,没人解答问题,坚持几天便放弃的感受的话,可以加入下方我们的测试交流群大家一起讨论交流学习。

Selenium自动化之弹窗处理文章来源地址https://www.toymoban.com/news/detail-480594.html

到了这里,关于Selenium自动化之弹窗处理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Selenium自动化测试处理文件上传

    在Web自动化测试过程中,有时候我们会遇到文件上传的场景,对于文件上传,一般有两种情况。 1、input标签文件上传 带有input标签并且type属性的值为file可直接使用send_keys方法上传文件。 此时就非常简单了,我们可以直接通过send_keys输入图片路径即可 2、非input标签AutoIt上传

    2024年02月16日
    浏览(49)
  • 【Selenium自动化测试】下拉框处理

    在Web自动化测试过程中,有时会遇到类似下面的情景。 这就是下拉框,对于下拉框,WebDriver同样有提供 Select 类来处理这类的下拉框,常见方法如下: select_by_value():通过value 值定位下拉选项。 select_by_visible_text():通过text 值定位下拉选项。 select_by_index():根据下拉选项的索

    2024年02月05日
    浏览(67)
  • 自动化测试——selenium多浏览器处理

    用户使用的浏览器(frefox,chrome,IE 等) web应用应该能在任何浏览器上正常的工作,这样能吸引更多的用户来使用。 是跨不同浏览器组合验证网站或web应用程序功能的过程 是 兼容性测试的一个分支,用于保持功能和质量的一致性 适用于面向客户的网站和组织内部使用的站点 py

    2024年02月11日
    浏览(57)
  • Selenium+Python自动化测试之验证码处理

    验证码识别技术 (很难达到100%) 添加Cookie (*****五星推荐) 逻辑方式: 1:打开验证码所在页面,截图。获取验证码元素坐标,剪切出验证码图片,识别 以途牛为例 代码: 步骤: 1:获取指定cookie: get_cookie(cookie名) 2:获取本网站所有本地cookies: get_cookies() 3:添加cookie:ad

    2024年02月04日
    浏览(44)
  • Selenium 自动化处理授权框、登录框和握手框

    测试管理班是专门面向测试与质量管理人员的一门课程,通过提升从业人员的团队管理、项目管理、绩效管理、沟通管理等方面的能力,使测试管理人员可以更好的带领团队、项目以及公司获得更快的成长。提供 1v1 私教指导,BAT 级别的测试管理大咖量身打造职业规划。 简介

    2024年02月20日
    浏览(29)
  • (九) web自动化测试-selenium处理页面的弹框

    input标签可以直接使用send_keys(file path)上传文件 方法: el = driver.find_element_by_id(‘上传按钮id’) el.send_keys(“文件路径+文件名”) 示例: 打开链接:https://image.baidu.com/ 点击识别上传按钮 点击上传按钮 选择本地照片上传 在页面操作的时候会遇到javascript生成的alert、comfirm和pro

    2023年04月11日
    浏览(61)
  • 【Selenium自动化测试】调用JavaScript与处理HTML5视频播放

    JS调用 有些页面操作不能依靠WebDriver 提供的API 来实现,如浏览器滚动条的拖动。这时就需要借助JavaScript 脚本。WebDriver 提供了execute_script()方法来执行JavaScript 代码。 下面演示一个用js调整浏览器滚动条位置的例子 window.scrollTo() 方法用于设置浏览器窗口滚动条的水平位置和垂

    2024年02月19日
    浏览(44)
  • 小程序隐私保护授权处理方式之弹窗组件

    欢迎点击领取 -《前端开发面试题进阶秘籍》:前端登顶之巅-最全面的前端知识点梳理总结 *分享一个使用比较久的🪜 小程序隐私保护授权弹窗组件 调用wx.getUserProfile进行授权时,返回错误信息:{errMsg: “getUserProfile:fail api scope is not declared in the privacy agreement”, errno: 112} 是因

    2024年02月10日
    浏览(45)
  • 软件测试/测试开发丨Selenium Web自动化多浏览器处理

    本文为霍格沃兹测试开发学社学员学习笔记分享 原文链接:https://ceshiren.com/t/topic/27185 用户使用的浏览器(firefox,chrome,IE 等) web 应用应该能在任何浏览器上正常的工作,这样能吸引更多的用户来使用 是跨不同浏览器组合验证网站或 web 应用程序功能的过程 是兼容性测试的一个

    2024年02月09日
    浏览(64)
  • 自动化测试-web(弹窗/滚动条/鼠标/等待等操作)

    为什么要处理弹窗? 如果页面操作过程中,有弹窗出现,不处理,无法继续对页面操作。 弹窗类型: js原生弹窗: 警告框、输入框、提示框,这些必须处理 如何处理: 1)获取弹窗对象 2)点击同意或取消方法 alert 弹窗 :只有信息及确认按钮 confirm弹窗 :在alert弹窗基础上

    2024年04月15日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包