selenium源码通读·6 |webdriver/common/alert.py-Alert类分析

简介: selenium源码通读·6 |webdriver/common/alert.py-Alert类分析

1 源码路径

selenum/webdriver/common/alert.py

在这里插入图片描述

2 功能描述

  • 定义了处理弹窗的能力;
  • 如警告框、提示框、确认框等等。

3 使用方法

  • 源码说的很清晰了,只要使用以下的方法即可:
 Use this class to interact with alert prompts.  It contains methods for dismissing,
    accepting, inputting, and getting text from alert prompts.

    Accepting / Dismissing alert prompts::

        Alert(driver).accept()
        Alert(driver).dismiss()

    Inputting a value into an alert prompt:

        name_prompt = Alert(driver)
        name_prompt.send_keys("Willian Shakesphere")
        name_prompt.accept()


    Reading a the text of a prompt for verification:

        alert_text = Alert(driver).text
        self.assertEqual("Do you wish to quit?", alert_text)

4 __init__方法

  • 需要传递一个driver,这个在实际应用中就是使用这个类的时候需要传递一个driver
  • 源码:
 def __init__(self, driver):
        """
        Creates a new Alert.

        :Args:
         - driver: The WebDriver instance which performs user actions.
        """
        self.driver = driver

5 Alert类API

API 说明
text(self) 获取弹窗的文本
dismiss(self) 解除可用的弹窗,即触发弹窗上的取消按钮
accept(self) 接受可用的弹窗,即触发弹窗上的确定按钮
send_keys(self, keysToSend): 弹窗输入文本

6 实例

6.1 警告框

  • 我们在本地F:/html_study/新建一个20-alert.html
  • 脚本如下:
<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <script>
        function malert() {
            alert("大佬你好,这是警告框!");
        }
    </script>
</head>

<body>

    <input type="button" id="A1" onclick="malert()" value="请点击触发警告框!" />

</body>

</html>
  • 运行效果如下:

在这里插入图片描述
在这里插入图片描述

  • 自动化代码:
# -*- coding:utf-8 -*-
# 作者:NoamaNelson
# 日期:2022/5/16
# 文件名称:selen_alert.py
# 作用:alert的使用
# 联系:VX(NoamaNelson)
# 博客:https://blog.csdn.net/NoamaNelson

from selenium import webdriver
from selenium.webdriver.common.alert import Alert
import time

driver = webdriver.Chrome()
driver.get("file:///F:/html_study/20-alert.html")
time.sleep(1)
driver.find_element_by_id("A1").click()
time.sleep(1)
Alert(driver).accept()
time.sleep(1)
driver.quit()

6.2 确认框

  • 我们在本地F:/html_study/新建一个21-alert.html
  • 脚本中写入如下代码:
<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <title>博客(https://blog.csdn.net/NoamaNelson)</title>
</head>

<body>

    <p>点击后 抽大奖!!</p>
    <button id="A2" onclick="myconfirm()">点击抽奖</button>
    <p id="A3"></p>
    <script>
        function myconfirm() {
            var x;
            var r = confirm("确定后,中奖1个亿!");
            if (r == true) {
                x = "按下\"确定\"按钮! 已中奖~";
            }
            else {
                x = "按下\"取消\"按钮! 未中奖,再接再厉~";
            }
            document.getElementById("A3").innerHTML = x;
        }
    </script>

</body>

</html>
  • 运行效果如下:

在这里插入图片描述

  • 自动化脚本如下:
# -*- coding:utf-8 -*-
# 作者:NoamaNelson
# 日期:2022/5/16
# 文件名称:selen_confirm.py
# 作用:alert的使用
# 联系:VX(NoamaNelson)
# 博客:https://blog.csdn.net/NoamaNelson

from selenium import webdriver
from selenium.webdriver.common.alert import Alert
import time

driver = webdriver.Chrome()
driver.get("file:///F:/html_study/21-confirm.html")
time.sleep(1)
driver.find_element_by_id("A2").click()
time.sleep(1)
Alert(driver).dismiss()
time.sleep(1)
driver.quit()

6.3 提示框

  • 我们在本地F:/html_study/新建一个23-prompt.html
  • 脚本中写入如下代码:
<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <title>博客(https://blog.csdn.net/NoamaNelson)</title>
</head>

<body>

    <p>点击后 输入 博客名称:NoamaNelson</p>
    <button id="A4" onclick="myprompt()">查看博客</button>
    <p id="A5"></p>
    <script>
        function myprompt() {
            var x;
            var y = prompt("请输入博客名称", "");
            if (y != null && y != "") {
                x = "你好 " + y + "! 欢迎进入博客!<br> https://blog.csdn.net/NoamaNelson";
                z = "https://blog.csdn.net/NoamaNelson"
                document.getElementById("A5").innerHTML = x;
            }
        }
    </script>

</body>

</html>
  • 运行效果如下:

在这里插入图片描述

  • 自动化脚本如下,但是不确定为啥没有输入内容,后续再研究下,大佬如果知道,请告诉我原因哈~:
# -*- coding:utf-8 -*-
# 作者:NoamaNelson
# 日期:2022/5/16
# 文件名称:selen_prompt.py
# 作用:alert的使用
# 联系:VX(NoamaNelson)
# 博客:https://blog.csdn.net/NoamaNelson

from selenium import webdriver
from selenium.webdriver.common.alert import Alert
import time

driver = webdriver.Chrome()
driver.get("file:///F:/html_study/23-prompt.html")
time.sleep(1)
driver.find_element_by_id("A4").click()
time.sleep(2)
Alert(driver).send_keys("NoamaNelson")
time.sleep(1)
Alert(driver).accept()
time.sleep(1)
driver.quit()
目录
相关文章
|
2月前
|
Web App开发 Java
使用java操作浏览器的工具selenium-java和webdriver下载地址
【10月更文挑战第12天】Selenium-java依赖包用于自动化Web测试,版本为3.141.59。ChromeDriver和EdgeDriver分别用于控制Chrome和Edge浏览器,需确保版本与浏览器匹配。示例代码展示了如何使用Selenium-java模拟登录CSDN,包括设置驱动路径、添加Cookies和获取页面源码。
|
3月前
|
数据采集 Web App开发 测试技术
使用Selenium与WebDriver实现跨浏览器自动化数据抓取
在网络爬虫领域,Selenium与WebDriver是实现跨浏览器自动化数据抓取的利器。本文详细介绍了如何利用Selenium和WebDriver结合代理IP技术提升数据抓取的稳定性和效率。通过设置user-agent和cookie来模拟真实用户行为,避免被网站检测和阻止。文章提供了具体的代码示例,展示了如何配置代理IP、设置user-agent和cookie,并实现了跨浏览器的数据抓取。合理的参数配置能有效减少爬虫被封禁的风险,提高数据抓取效率。
330 6
使用Selenium与WebDriver实现跨浏览器自动化数据抓取
|
3月前
|
Web App开发 JavaScript Java
自动化测试的利剑:Selenium WebDriver入门与实践
【9月更文挑战第21天】在软件开发的海洋中,自动化测试犹如一艘船,帮助开发者们快速航行至质量保证的彼岸。本文将作为你的罗盘,指引你了解和掌握Selenium WebDriver这一强大的自动化测试工具。通过深入浅出的方式,我们将探索Selenium WebDriver的基本概念、安装过程以及编写简单测试脚本的方法。无论你是刚接触自动化测试的新手,还是希望提升测试技能的开发者,这篇文章都将为你提供有价值的指导。
|
3月前
|
Web App开发 Java 测试技术
自动化测试的利器:Selenium WebDriver入门与实践
【9月更文挑战第8天】在软件开发的海洋中,测试是确保我们不会溺水的那根救生索。Selenium WebDriver,作为自动化测试的明星工具,让这根救生索更加结实可靠。本文将带你快速上手Selenium WebDriver,从基础设置到实际操作,再到实战演练,让你的开发之旅更加平稳顺畅。
|
4月前
|
Web App开发 Java 测试技术
自动化测试的新篇章:使用Selenium WebDriver进行高效测试
【8月更文挑战第31天】 在软件开发的海洋中,自动化测试犹如一艘航船,带领着质量保证团队驶向效率与精准的彼岸。本文将揭开Selenium WebDriver的神秘面纱,通过实际案例引导您掌握这一强大的自动化测试工具。我们将从Selenium WebDriver的基础概念出发,逐步深入到代码示例,最后探讨其在现实项目中的应用场景和优势,旨在为您的软件测试之旅提供清晰的指南。
|
4月前
|
Web App开发 敏捷开发 Java
自动化测试中的神器 —— Selenium WebDriver
【8月更文挑战第31天】在软件开发的海洋里,自动化测试是那艘能带领我们驶向高效与精准彼岸的帆船。本文将带你领略Selenium WebDriver的魅力,从安装到实战,一步步解锁自动化测试的新境界。你将看到代码如何化繁为简,让重复的测试工作变得轻松愉快。让我们一起驾驭这股代码的风,向着软件质量的灯塔进发!
|
4月前
|
Web App开发 敏捷开发 测试技术
自动化测试之美:使用Selenium WebDriver进行网页功能验证
【8月更文挑战第29天】在数字时代,软件质量是企业竞争力的关键。本文将深入探讨如何通过Selenium WebDriver实现自动化测试,确保网页应用的可靠性和性能。我们将从基础设置到编写测试用例,逐步引导读者掌握这一强大的测试工具,同时分享实战经验,让测试不再是开发的负担,而是质量保证的利器。
|
2月前
|
Web App开发 前端开发 JavaScript
探索Python科学计算的边界:利用Selenium进行Web应用性能测试与优化
【10月更文挑战第6天】随着互联网技术的发展,Web应用程序已经成为人们日常生活和工作中不可或缺的一部分。这些应用不仅需要提供丰富的功能,还必须具备良好的性能表现以保证用户体验。性能测试是确保Web应用能够快速响应用户请求并处理大量并发访问的关键步骤之一。本文将探讨如何使用Python结合Selenium来进行Web应用的性能测试,并通过实际代码示例展示如何识别瓶颈及优化应用。
125 5
|
2月前
|
Java 测试技术 C#
自动化测试之美:从Selenium到Appium
【10月更文挑战第3天】在软件开发的海洋中,自动化测试如同一艘航船,引领着质量保证的方向。本文将带你领略自动化测试的魅力,从Web端的Selenium到移动端的Appium,我们将一探究竟,看看这些工具如何帮助我们高效地进行软件测试。你将了解到,自动化测试不仅仅是技术的展示,更是一种提升开发效率和产品质量的智慧选择。让我们一起启航,探索自动化测试的世界!
|
2月前
|
JavaScript 前端开发 测试技术
精通Selenium:从基础到高级的网页自动化测试策略
【10月更文挑战第6天】随着Web应用变得越来越复杂,手动进行功能和兼容性测试变得既耗时又容易出错。自动化测试因此成为了现代软件开发不可或缺的一部分。Selenium是一个强大的工具集,它支持多种编程语言(包括Python),允许开发者编写脚本来模拟用户与Web页面的交互。本文将带领读者从Selenium的基础知识出发,逐步深入到高级的应用场景,通过丰富的代码示例来展示如何高效地进行网页自动化测试。
367 5

热门文章

最新文章