6.1 页面上的三种弹框

alert:用来提示
confirm:用来确认
promt:输入内容

6.2 弹框的方法和属性

方法/属性 方法/属性描述
accept() 接受
dismiss() 取消
send_keys() 输入内容
text 显示的文本

6.3 使用方法

(1) alert

alert只有accept()方法和text属性。
6、alert、confirm、prompt三种弹框用法 - 图1

  1. # 切换到弹框
  2. alert = self.driver.switch_to.alert
  3. # 打印alert弹框的内容
  4. print(alert.text)
  5. # 点击确定按钮
  6. alert.accept()

(2) confirm

confirm没有send_keys()方法,其余三个都有。
image.png

  1. # 切换到弹框
  2. confirm = self.driver.switch_to.alert
  3. # 打印alert弹框的内容
  4. print(confirm.text)
  5. # 点击取消按钮 (或者点击确定按钮:confirm.accept())
  6. confirm.dismiss()

(3) promt

prompt有所有属性和方法。
image.png

  1. # 切换到弹框
  2. prompt = self.driver.switch_to.alert
  3. # 输出alert弹框的内容
  4. print(prompt.text)
  5. # 输入内容
  6. prompt.send_keys('这个是输入的内容')
  7. # 点击确定按钮(或者点击取消按钮:prompt.dismiss())
  8. prompt.accept()

注意:单独使用send_keys这个方法在chromedriver中输入后不会显示,需要接着调用.accept()方法点击确认才会展示文案。

6.4 代码实战

场景:对alert弹窗进行确定、打印文本操作,再对confirm弹窗进行取消、打印文本操作,最后再对prompt弹窗进行打印文本、输入内容、点击确定操作。

代码:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>测试弹框</title>
  6. </head>
  7. <body>
  8. <a href="#" id="alert" onclick="alert_test()">点击弹出alert弹窗</a><br>
  9. <a href="#" id="confirm" onclick="confirm_test()">点击弹出confirm弹窗</a><br>
  10. <a href="#" id="prompt" onclick="prompt_test()">点击弹出prompt弹窗</a><br>
  11. </body>
  12. <script>
  13. function alert_test(){
  14. alert('这个是alert弹窗');
  15. }
  16. function confirm_test(){
  17. confirm('这个是confirm弹窗');
  18. }
  19. function prompt_test(){
  20. var value = prompt('这个是prompt弹窗');
  21. document.write(value)
  22. }
  23. </script>
  24. </html>
  1. from os.path import join
  2. from os import path
  3. from time import sleep
  4. from selenium import webdriver
  5. class TestCase(object):
  6. def __init__(self):
  7. demo05_path = path.dirname(path.abspath(__file__))
  8. form_path = join(demo05_path, 'pop_up.html')
  9. self.driver = webdriver.Chrome()
  10. self.driver.maximize_window()
  11. self.driver.get(form_path)
  12. def test_alert(self):
  13. self.driver.find_element_by_id('alert').click()
  14. sleep(1)
  15. # 切换到弹框
  16. alert = self.driver.switch_to.alert
  17. # 输出alert弹框的内容
  18. print(alert.text)
  19. # 点击确认按钮
  20. alert.accept()
  21. sleep(2)
  22. def test_confirm(self):
  23. self.driver.find_element_by_id('confirm').click()
  24. sleep(1)
  25. # 切换到弹框
  26. confirm = self.driver.switch_to.alert
  27. # 输出alert弹框的内容
  28. print(confirm.text)
  29. # 点击取消按钮
  30. confirm.dismiss()
  31. sleep(2)
  32. def test_prompt(self):
  33. self.driver.find_element_by_id('prompt').click()
  34. sleep(1)
  35. # 切换到弹框
  36. prompt = self.driver.switch_to.alert
  37. # 输出alert弹框的内容
  38. print(prompt.text)
  39. # 输入内容
  40. prompt.send_keys('这个是输入的内容')
  41. sleep(1)
  42. # 点击确认按钮
  43. prompt.accept()
  44. sleep(2)
  45. self.driver.quit()
  46. if __name__ == '__main__':
  47. case = TestCase()
  48. case.test_alert()
  49. case.test_confirm()
  50. case.test_prompt()

运行过程:
237.gif

打印结果:
image.png