随笔 - 127  文章 - 0  评论 - 0  阅读 - 74293

selenium+python自动化测试--alert弹框

问题:如何判断是否为弹框?

回答:当在Firefox中进行定位时,鼠标无法定位到弹框及弹框中的元素,就是alert弹框。如果鼠标可以定位到弹框及弹框中的元素,则用普通定位的方法。

 

 

当使用普通定位时,有时很难点击到弹框按钮,导致用例失败。下面介绍用js解决无法点击弹框按钮问题:

 

一、测试场景

输入用户名后,点击提交按钮,弹出“请输入密码”提示框,判断是否正确提示,并关闭弹框。

 二、代码编写

文件名称:test_jecnalert.py

复制代码
复制代码
import unittest
from selenium import webdriver
from common.base import Base

class TestJecnalert(unittest.TestCase):

    user = ("name","username")

    @classmethod
    def setUpClass(cls):
        cls.driver = webdriver.Firefox()
        cls.driver.get("http://www.jecn.com.cn/member/register.php")
        cls.basealert = Base(cls.driver)

    @classmethod
    def tearDownClass(cls):
        cls.driver.quit()

    def getresult(self):
        #点击提交按钮
        js = '$(".submit").click()'
        #执行js
        self.driver.execute_script(js)
        #切换到弹窗
        al = self.driver.switch_to.alert
        #获取弹框上的文字
        result1=al.text
        print(result1)
        #点击确定按钮
        al.accept()
        #返回结果
        return result1

    def test_01(self):
        self.basealert.send(self.user,"admin")
        res = self.getresult()
        exp = "请输入密码!"
        self.assertEqual(res,exp)


if __name__ == '__main__':
    unittest.main()
复制代码
复制代码

注:base.py 请查看selenium+python自动化测试--登录

三、运行结果

posted on   groby  阅读(274)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示