场景
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 没有对话框就不能用了,不然会报错
代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
@time: 2019-12-15 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() |