alert\confirm\prompt 彈出框操作主要方法有:
- text 返回 alert/confirm/prompt 中的文字信息
- accept 點擊確認按鈕
- dismiss 點擊取消按鈕,如果有的話
- send_keys 輸入值,這個 alert\confirm 沒有對話框就不能用了,不然會報錯。
在實際的應用中,我們會碰到各種交互的彈窗,在上面百度搜索設置的例子中,我們用
switch_to_alert() 處理警告框非常簡單;其實,對於原生的 js alert 、confirm 以及 prompt
都可以通過 webdriver 的 switch_to_alert()方法進行處理
1、alert 操作
1.先用 switch_to_alert()方法切換到 alert 彈出框上
2.可以用 text 方法獲取彈出的文本 信息
3.accept()點擊確認按鈕
4.dismiss()相當於點右上角 x,取消彈出框
#接受警告信息 alert = driver.switch_to_alert() alert.accept() #得到文本信息打印 alert = driver.switch_to_alert() print alert.text() #取消對話框(如果有的話) alert = driver.switch_to_alert() alert.dismiss() #輸入值 alert = driver.switch_to_alert() alert.send_keys(“xxx”)
下面以操作百度的設置為例:
#coding=utf-8 from selenium import webdriver from selenium.webdriver.common.action_chains import ActionChains import time #訪問百度 driver=webdriver.Firefox() driver.get("http://www.baidu.com") #鼠標懸停在設置上,並展示后面的操作 link=driver.find_element_by_link_text('設置') ActionChains(driver).move_to_element(link).perform() driver.find_element_by_link_text("搜索設置").click() #保存設置 driver.find_element_by_class_name("prefpanelgo").click() time.sleep(3) #跳轉進入對話框 alert=driver.switch_to_alert() # 打印警告框文字 print alert.text() #接受彈出的對話框 alert.accept() #alert.dismiss()相當於點右上角 x,取消彈出框 driver.close()
2、confirm操作
1.先用 switch_to_alert()方法切換到 alert 彈出框上
2.可以用 text 方法獲取彈出的文本 信息
3.accept()點擊確認按鈕
4.dismiss()相當於點取消按鈕或點右上角 x,取消彈出框
3、 prompt 操作
1.先用 switch_to_alert()方法切換到 alert 彈出框上
2.可以用 text 方法獲取彈出的文本 信息
3.accept()點擊確認按鈕
4.dismiss()相當於點右上角 x,取消彈出框
5.send_keys()這里多個輸入框,可以用 send_keys()方法輸入文本內容