找回密码
 立即注册
首页 业界区 科技 selenium之三种弹框(alert、confirm、prompt) ...

selenium之三种弹框(alert、confirm、prompt)

碣滥 2025-6-7 16:12:32
弹框

WebDriver提供了一个API, 用于处理JavaScript提供的三种类型的原生弹窗消息. 这些弹窗由浏览器提供限定的样式.;分别为以下三种

  • alerts警告框
  • confirm确认框
  • prompt提示框
话不多说,开始实践下就知道怎么一回事了
alerts

警告框,显示一条自定义信息,以及一个关闭按钮【一般是确定】;可以使用按钮进行关闭
  1. import time
  2. from selenium import webdriver
  3. from selenium.webdriver.chrome.service import Service
  4. from selenium.webdriver.common.by import By
  5. from selenium.webdriver.support.wait import WebDriverWait
  6. from selenium.webdriver.support import expected_conditions as EC
  7. serve_path = r'D:\Code_Study\driver\chromedriver-win64\chromedriver.exe'
  8. service = Service(serve_path)
  9. browser = webdriver.Chrome(service=service)
  10. browser.get(f'https://www.selenium.dev/documentation/webdriver/interactions/alerts/')
  11. # Alerts
  12. # 等待元素可以被点击
  13. alert_link = WebDriverWait(browser, 30).until(EC.element_to_be_clickable((By.LINK_TEXT, "See an example alert")))
  14. alert_link.click()
  15. # 切换到alert弹框并输出文本内容,点击确定
  16. alert = browser.switch_to.alert
  17. text = alert.text
  18. print(text)
  19. time.sleep(5)
  20. alert.accept()
复制代码
confirm

确认框类似于警告框,不同之处在于用户还可以取消消息
  1. # 等待元素可以被点击
  2. alert_link = WebDriverWait(browser, 30).until(EC.element_to_be_clickable((By.LINK_TEXT, "See a sample confirm")))
  3. alert_link.click()
  4. # 下面这句话也是点击click,只不过用的js代码执行的
  5. # browser.execute_script("arguments[0].click();", alert_link)
  6. # 切换到confirm弹框并输出,点击确定
  7. alert = browser.switch_to.alert
  8. text = alert.text
  9. print(text)
  10. time.sleep(5)
  11. alert.dismiss()
复制代码
prompt

提示框和确认框相似,但是它可以进行文本输入;
点击取消不会提交文本内容,点击确定才可以
这里有个坑,不知道是不是我找的这个网站问题;没办法输入文本内容;等到后面找到原因了,会来填坑的
  1. # prompt
  2. alert_link = WebDriverWait(browser, 30).until(EC.element_to_be_clickable((By.PARTIAL_LINK_TEXT, "prompt")))
  3. # alert_link.click()
  4. # 下面这句话也是点击click,只不过用的js代码执行的
  5. browser.execute_script("arguments[0].click();", alert_link)
  6. # 切换到prompt弹框并输出,点击确定
  7. alert = browser.switch_to.alert
  8. text = alert.text
  9. print(text)
  10. time.sleep(10)
  11. alert.send_keys('hahaha')
  12. time.sleep(10)
  13. alert.accept()
  14. browser.quit()
复制代码
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册