[Selenium][Notes]Day3:4️⃣处理弹框alert/confirm/prompt

326 阅读1分钟
页面弹框有三种:
  • alert: 用来提示
  • confirm: 用来确认
  • prompt: 输入内容 | # | 方法/属性 | 方法/属性描述 | | --- | --- | --- | | 1 | accept() | 接受 | | 2 | dismiss() | 取消 | | 3 | text | 显示的文本 | | 4 | send_keys() | 输入内容 |

实例Code:

Python
from selenium import webdriver
from time import sleep
from selenium.webdriver.support.select import Select
import os

class TestCase(object):
    def __init__(self):
        self.driver = webdriver.Chrome()
        path = os.path.dirname(os.path.abspath(__file__))  # 当前文件所在目录路径
        # file协议拼接
        file_path = 'file:///' + path + '/test_alert.html'
        # 访问本地html
        self.driver.get(file_path)
    # alert
    def test_alert(self):
        self.driver.find_element_by_id('alert').click()
        # 切换到alert
        alert = self.driver.switch_to.alert
        print(alert.text)
        sleep(2)
        alert.accept()
        sleep(1)
        print('Alert Pass')
    # confirm
    def test_confirm(self):
        self.driver.find_element_by_id('confirm').click()
        # 切换到alert
        confirm = self.driver.switch_to.alert
        print(confirm.text)
        sleep(2)
        # 确认删除
        # confirm.accept()
        # sleep(1)
        # 取消删除
        confirm.dismiss()
        sleep(1)
        print('Confirm Pass')
    # prompt
    def test_prompt(self):
        self.driver.find_element_by_id('prompt').click()
        # 切换到alert
        prompt = self.driver.switch_to.alert
        # 打印提示框内容
        print(prompt.text)
        # 在提示框输入值
        prompt.send_keys('20')
        sleep(2)
        # 确认
        prompt.accept()
        sleep(2)
        # 取消删除
        print('Prompt Pass')

if __name__ == '__main__':
    case = TestCase()
    case.test_alert()
    case.test_confirm()
    case.test_prompt()
    case.driver.quit()
HTML
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<a href="javascript:alert('提示框')" id="alert" >Alert</a><br>
<a href="javascript:confirm('此操作将删除数据')" id="confirm">Confirm</a><br>
<a href="javascript:var age = prompt('请输入年龄');document.write(age)" id="prompt">Prompt</a><br>

</body>
</html>