场景
webdriver 中处理JavaScript 所生成的alert、confirm 以及prompt 是很简单的。具体思路是使用switch_to.alert()方法定位到alert/confirm/prompt。然后使用text/accept/dismiss/send_keys 按需进行操做。
- text 返回alert/confirm/prompt 中的文字信息
- accept 点击确认按钮
- dismiss 点击取消按钮,如果有的话
- send_keys 输入值,这个alertconfirm 没有对话框就不能用了,不然会报错
代码
#!/usr/bin/env python # -*- codinfg:utf-8 -*- ''' @author: Jeff LEE @file: prompt 处理.py @time: 2018-09-25 17:27 @desc: ''' from selenium import webdriver from selenium.webdriver.common.action_chains import ActionChains import time driver = webdriver.Firefox() #添加智能等待 driver.implicitly_wait(10) driver.get('https://www.baidu.com/') #进入搜索设置页面 elment = driver.find_element_by_link_text('设置') ActionChains(driver).move_to_element(elment).perform() driver.find_element_by_link_text('搜索设置').click() time.sleep(5) #修改设置 driver.find_element_by_id('s1_2').click() time.sleep(5) #保存设置 driver.find_element_by_link_text('保存设置').click() #获取网页上的警告信息 alert=driver.switch_to_alert() time.sleep(5) #得到文本信息并打印 print (alert.text) #接收警告信息 alert.accept() # 取消对话框(如果有的话) # alert.dismiss() # 输入值(如果有的话) # alert.send_keys('XXX') driver.quit()