Selenium自动化之操作js弹出框(弹窗)

本文介绍了如何使用Selenium自动化测试中应对JavaScript弹出的alert、confirm和prompt框,包括accept()和dismiss()方法的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#操作js弹出框,alert、confirm、prompt都是一样的操作
alert = driver.switch_to.alert
alert.accept()
alert.dismiss()

import unittest
import time
from selenium import webdriver
from selenium.webdriver import ActionChains

class VisitSogouByIE(unittest.TestCase):
    def setUp(self):
        # 启动IE浏览器
        self.driver = webdriver.Ie(executable_path = "g:\\IEDriverServer")

    def testHandlePrompt(self):
        url = "http://127.0.0.1/test_prompt.html"
        # 访问自定义网页
        self.driver.get(url)
        # 使用id定位方式,找到被测试网页上唯一按钮元素
        element = self.driver.find_element_by_id("button")
        element.click()
        time.sleep(2)
        # 单击按钮元素,弹出一个prompt提示框,
        # 上面将显示“这是一个prompt弹出框”、输入框、
        # “确定”按钮和“取消”按钮
        # 使用driver.switch_to_alert()方法获取Alert对象
        alert = self.driver.switch_to.alert
        # 使用alert.text方法获取prompt框上面的文字,
        # 并断言文字内容是否和“这是一个 prompt 弹出框”一致
        self.assertEqual("这是一个 prompt 弹出框", alert.text)
        time.sleep(1)
        # 调用alert.send_keys()方法,在prompt窗体的输入框中输入
        # “selenium自动化”
        alert.send_keys("selenium自动化")
        time.sleep(1)
        # 使用alert对象的accept方法,
        # 点击prompt框的“确定”按钮,关闭prompt框
        alert.accept()
        # 使用alert对象的dismiss方法,单击prompt框上的“取消”按钮,关闭prompt框
        # 取消下面一行代码的注释,就会模拟单击prompt框上的“取消”按钮
        # alert.dismiss()

    def tearDown(self):
        # 退出IE浏览器
        self.driver.quit()

if __name__ == '__main__':
    unittest.main()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值