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 join
from os import path
from time import sleep
from selenium import webdriver
class 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()
运行过程:
打印结果: