selenium - webdriver 警告框处理 switch_to.alert
类似下图所示的警告框,无法通过前端工具定位,需要跳转到弹框,然后再对其操作
3种弹框:
- 警告类弹框,alert:一个按钮
- 确认类弹框,confirm:一个确认,一个取消
- 消息类弹框,prompt:一个输入框, 一个确认,一个取消
跳转到弹框:
- switch_to.alert
常用的弹框处理方法:
- text 获取警告框的内容
- accept() 相当于点击确认按钮
- dismiss() 相当于点击取消按钮
- send_keys() 向警告框输入值
例子:
点击百度首页的设置->搜索设置->保存设置->处理弹框
1 from selenium import webdriver 2 from selenium.webdriver.common.action_chains import ActionChains 3 import time 4 5 driver = webdriver.Chrome() 6 driver.maximize_window() 7 driver.implicitly_wait(10) 8 driver.get('http://www.baidu.com') 9 10 11 element = driver.find_element_by_partial_link_text('设置') 12 ActionChains(driver).move_to_element(element).perform() 13 driver.find_element_by_partial_link_text('搜索设置').click() 14 time.sleep(3) 15 driver.find_element_by_partial_link_text('保存设置').click() 16 17 # driver.switch_to_alert().accept() 18 driver.switch_to.alert.accept() # 获取警告框,并接受 19 text1 = driver.switch_to.alert.text # 获取警告框,并获取其中的内容 20 print(text1) 21 22 time.sleep(3) 23 driver.quit()