selenium--操作JS弹框

简介: selenium--操作JS弹框

前戏


我们常见的弹框有三种,一种是alert弹框,一种是prompt弹框,还有一种是confirm弹框那他们有什么不同呢?不同点就是他们长的不一样,alert弹框有一段文字和一个确定按钮,如下

 

在来看一下prompt长什么样

 

confirm长这样

 

看完上面的三个框,大家应该能区分出什么框是哪种类型的了吧。。。


处理alert弹框


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<input type="button" id="button"
       onclick="alert('这是一个alert弹出框')" value="单击此按钮">
</body>
</html>

 

from selenium import webdriver
import time,unittest
from selenium.common.exceptions import NoAlertPresentException
class Test_Alert(unittest.TestCase):
    def test_HandleAlert(self):
        url = r'E:\JSSCRIPT.html'
        self.driver = webdriver.Chrome()
        self.driver.get(url)
        button = self.driver.find_element_by_id('button')
        button.click()
        try:
            # 使用driver.switch_to.alert()方法获取alert对象
            alert = self.driver.switch_to_alert()
            time.sleep(2)
            # 断言弹出框里的内容
            self.assertEqual(alert.text, '这是一个alert弹出框')
            # 调用alert对象的accept()方法,模拟鼠标单击alert弹窗上的“确定”按钮
            alert.accept()
        except NoAlertPresentException as e:
            print(e)
test1 = Test_Alert()
test1.test_HandleAlert()

 

处理prompt弹框


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<input type="button" id="button"
       onclick="prompt('这是一个prompt弹出框')" value="单击此按钮">
</body>
</html>


from selenium import webdriver
import time,unittest
from selenium.common.exceptions import NoAlertPresentException
class Test_prompt(unittest.TestCase):
    def test_HandleAlert(self):
        url = r'E:\JSSCRIPT.html'
        self.driver = webdriver.Chrome()
        self.driver.get(url)
        button = self.driver.find_element_by_id('button')
        button.click()
        try:
            # 使用driver.switch_to.alert()方法获取alert对象
            alert = self.driver.switch_to_alert()
            time.sleep(2)
            # 断言弹出框里的内容
            self.assertEqual(alert.text, '这是一个prompt弹出框')
            # 往框里输入值
            alert.send_keys('我要搞自动化。。。')  # 没输入但是也没报错
            time.sleep(4)
            alert.accept()  # 模拟点击确定按钮
        except NoAlertPresentException as e:
            print(e)
test1 = Test_prompt()
test1.test_HandleAlert()

 

处理confirm弹框

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<input type="button" id="button"
       onclick="prompt('这是一个confirm弹出框')" value="单击此按钮">
</body>
</html>


from selenium import webdriver
import time,unittest
from selenium.common.exceptions import NoAlertPresentException
class Test_confirm(unittest.TestCase):
    def test_HandleAlert(self):
        url = r'E:\JSSCRIPT.html'
        self.driver = webdriver.Chrome()
        self.driver.get(url)
        button = self.driver.find_element_by_id('button')
        button.click()
        try:
            # 使用driver.switch_to.alert()方法获取alert对象
            alert = self.driver.switch_to.alert
            time.sleep(2)
            # 断言弹出框里的内容
            self.assertEqual(alert.text, '这是一个confirm弹出框')
            # 往框里输入值
            alert.send_keys('我要搞自动化。。。')  # 没输入但是也没报错
            time.sleep(4)
            alert.accept()  # 模拟点击确定按钮
            alert.dismiss()  # 点击取消按钮     和上面的取其一
        except NoAlertPresentException as e:
            print(e)
test1 = Test_confirm()
test1.test_HandleAlert()

相关文章
|
数据采集 Web App开发 JavaScript
利用Selenium和XPath抓取JavaScript动态加载内容的实践案例
利用Selenium和XPath抓取JavaScript动态加载内容的实践案例
|
12月前
|
数据采集 Web App开发 JavaScript
如何使用Selenium处理JavaScript动态加载的内容?
如何使用Selenium处理JavaScript动态加载的内容?
|
Web App开发 前端开发 JavaScript
JavaScript动态渲染页面爬取——Selenium的使用(一)
JavaScript动态渲染页面爬取——Selenium的使用(一)
486 4
|
Web App开发 数据采集 JavaScript
JavaScript动态渲染页面爬取——Selenium的使用(二)
JavaScript动态渲染页面爬取——Selenium的使用(二)
546 2
|
JavaScript 前端开发
JavaScript 输出与弹框
JavaScript 输出与弹框
|
JavaScript 前端开发 索引
JavaScript编码之路 【JavaScript之操作数组、字符串方法汇总】(三)
JavaScript编码之路 【JavaScript之操作数组、字符串方法汇总】(三)
162 1
|
存储 JavaScript 前端开发
js/javascript 操作字符串【全】(含常用的操作字符串的lodash)
js/javascript 操作字符串【全】(含常用的操作字符串的lodash)
182 1
|
JavaScript 前端开发 安全
安全开发-JS应用&原生开发&JQuery库&Ajax技术&加密编码库&断点调试&逆向分析&元素属性操作
安全开发-JS应用&原生开发&JQuery库&Ajax技术&加密编码库&断点调试&逆向分析&元素属性操作
168 5
|
JavaScript vr&ar 数据库
技术笔记:Js获取当前日期时间及其它操作
技术笔记:Js获取当前日期时间及其它操作
762 1
|
存储 前端开发 JavaScript
回调函数是JavaScript中处理异步编程的常见模式,常用于事件驱动和I/O操作。
【6月更文挑战第27天】回调函数是JavaScript中处理异步编程的常见模式,常用于事件驱动和I/O操作。它作为参数传递给其他函数,在特定条件满足或任务完成后被调用。例如,`asyncOperation`函数接受回调函数`handleResult`,模拟异步操作后,调用`handleResult`传递结果。这样,当异步任务完成时,`handleResult`负责处理结果。
180 1

热门文章

最新文章