6.1 页面上的三种弹框
alert:用来提示
confirm:用来确认
promt:输入内容
6.2 弹框的方法和属性
| 方法/属性 | 方法/属性描述 |
|---|---|
| accept() | 接受 |
| dismiss() | 取消 |
| send_keys() | 输入内容 |
| text | 显示的文本 |
6.3 使用方法
(1) alert
alert只有accept()方法和text属性。
# 切换到弹框alert = self.driver.switch_to.alert# 打印alert弹框的内容print(alert.text)# 点击确定按钮alert.accept()
(2) confirm
confirm没有send_keys()方法,其余三个都有。
# 切换到弹框confirm = self.driver.switch_to.alert# 打印alert弹框的内容print(confirm.text)# 点击取消按钮 (或者点击确定按钮:confirm.accept())confirm.dismiss()
(3) promt
prompt有所有属性和方法。
# 切换到弹框prompt = self.driver.switch_to.alert# 输出alert弹框的内容print(prompt.text)# 输入内容prompt.send_keys('这个是输入的内容')# 点击确定按钮(或者点击取消按钮:prompt.dismiss())prompt.accept()
注意:单独使用send_keys这个方法在chromedriver中输入后不会显示,需要接着调用.accept()方法点击确认才会展示文案。
6.4 代码实战
场景:对alert弹窗进行确定、打印文本操作,再对confirm弹窗进行取消、打印文本操作,最后再对prompt弹窗进行打印文本、输入内容、点击确定操作。
代码:
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>测试弹框</title></head><body><a href="#" id="alert" onclick="alert_test()">点击弹出alert弹窗</a><br><a href="#" id="confirm" onclick="confirm_test()">点击弹出confirm弹窗</a><br><a href="#" id="prompt" onclick="prompt_test()">点击弹出prompt弹窗</a><br></body><script>function alert_test(){alert('这个是alert弹窗');}function confirm_test(){confirm('这个是confirm弹窗');}function prompt_test(){var value = prompt('这个是prompt弹窗');document.write(value)}</script></html>
from os.path import joinfrom os import pathfrom time import sleepfrom selenium import webdriverclass TestCase(object):def __init__(self):demo05_path = path.dirname(path.abspath(__file__))form_path = join(demo05_path, 'pop_up.html')self.driver = webdriver.Chrome()self.driver.maximize_window()self.driver.get(form_path)def test_alert(self):self.driver.find_element_by_id('alert').click()sleep(1)# 切换到弹框alert = self.driver.switch_to.alert# 输出alert弹框的内容print(alert.text)# 点击确认按钮alert.accept()sleep(2)def test_confirm(self):self.driver.find_element_by_id('confirm').click()sleep(1)# 切换到弹框confirm = self.driver.switch_to.alert# 输出alert弹框的内容print(confirm.text)# 点击取消按钮confirm.dismiss()sleep(2)def test_prompt(self):self.driver.find_element_by_id('prompt').click()sleep(1)# 切换到弹框prompt = self.driver.switch_to.alert# 输出alert弹框的内容print(prompt.text)# 输入内容prompt.send_keys('这个是输入的内容')sleep(1)# 点击确认按钮prompt.accept()sleep(2)self.driver.quit()if __name__ == '__main__':case = TestCase()case.test_alert()case.test_confirm()case.test_prompt()
运行过程:
打印结果:
