天天看點

【WebDriver API】python之selenium警告框處理

??ebDriver涓?澶???JavaScript????????alter??confirm浠ュ??prompt????绠???锛??蜂???娉???浣跨??witch_to_alter()?規?瀹?浣???lter/confirm/prompt锛??跺??浣跨??ext/accept/dismiss/send_keys绛??規?杩?琛???浣???

1.璀???娑???妗?锛?alert锛?

????璀???娑???妗???渚?浜?涓?涓?"纭?瀹?"????璁╃?ㄦ?峰?抽??璇ユ???妗?锛?骞朵?璇ユ???妗???妯″?瀵矽??妗?锛?涔?灏辨??璇寸?ㄦ?峰?椤誨???抽??璇ユ???妗??跺?????界戶缁?杩?琛???浣???

2.纭?璁ゆ???妗?锛?confirm锛?

????纭?璁ゆ???妗????ㄦ?鋒??绀轟?涓?"??涓?????棰?锛??ㄦ?峰??浠ユ?規??????纭?瀹?"??????"??娑?"??????

3.??绀烘???瀵矽??锛?prompt锛?

??????绀烘???妗???渚?浜?涓?涓?????瀛?娈碉??ㄦ?峰??浠ュ?ㄦ?ゅ??娈佃??ヤ?涓?绛?妗??ュ??搴??ㄧ????绀恒??璇ユ???妗???涓?涓?"纭?瀹?"??????涓?涓?"??娑?"??????????纭?璁?浼???搴?瀵瑰?????绀轟俊??锛???????娑?"浼??抽??瀵矽??妗???

alter??comfirm??prompt涓?绉??峰??锛?濡?涓???

【WebDriver API】python之selenium警告框處理
  • text锛?杩???alter/confirm/prompt涓?????瀛?淇℃????
  • accept()锛??ュ???版??璀???妗?锛??崇?瑰?葷‘璁ゃ??
  • dismiss()锛?瑙f?g?版??璀???妗?锛??崇?瑰?誨??娑???????x"??瀵矽??妗???
  • send_keys锛?keysToSend锛?锛??????????寵????妗?锛?

    杈??ユ?????鹼?浠???浜?prompt,??lter??confirm涓?娌℃??杈??ユ?锛?璀?ず妗??虹?扮??姝ラ?よ??瀹????ㄦ??涓?涓?浜?浠朵?????锛?浣?浣????烘??涔????芥??涓?涓?瀹??虹?拌??ず妗?锛???浠ュ??浠ョ??ry except?繪????璀?ず妗?锛?杩???娌″???蜂?浠g??锛???宸卞?誨?璇????锛?濡???璀?ず妗??虹?幫?灏卞???㈣?寵??ず妗?杩?琛???浣?浜???

  • keysToSend锛?灏??????????寵????妗???

?懼害??绱㈣?劇疆寮瑰?虹??绐??f??涓??介??杩???绔?宸ュ?峰?瑰?惰?琛?瀹?浣???锛?杩?涓??跺??灏卞??浠ラ??杩?switch_to_alert()?規??ュ??杩?涓?寮圭????

【WebDriver API】python之selenium警告框處理

璀???妗?澶???.py

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
import time

driver=webdriver.Firefox()
driver.implicitly_wait(10)
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(2)

#?ュ??璀???妗?
driver.switch_to_alert().accept()

driver.quit()      

move_to_element()榧?????????浣跨???灏?榧????????ㄢ??璁劇疆???炬?ヤ?锛??跺???ㄥ脊?虹??涓???????涓????燴????绱㈣?劇疆??????锛?璁劇疆瀹????????燴??淇?瀛?璁劇疆??锛?寮瑰?轟?瀛?纭?璁よ????妗?????杩?switch_to_alert()?規??峰??褰???椤甸?????璀???妗?锛?骞朵嬌??ccept()?規??ュ??璀???妗???

瑙f?h????妗?.py
from time import ctime,sleep
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
driver = webdriver.Chrome()
driver.implicitly_wait(10)
driver.get("http://www.baidu.com")
ydong = driver.find_element_by_xpath("//*[@id='u1']/a[8]") #?瑰?葷?懼害璁劇疆
sleep(1)
ActionChains(driver).move_to_element(ydong).perform()
driver.find_element_by_link_text("??绱㈣?劇疆").click()
sleep(1)
driver.find_element_by_xpath("//*[@id='gxszButton']/a").click()
driver.switch_to_alert().dismiss() #瑙f?h?ヨ????妗?
#driver.switch_to_alert().accept() #纭?璁?driver.quit()
      

?

1.?ㄨ??ず妗??烘?ヤ???锛????㈣?寵??ず妗?

e_alter = driver.switch_to_alter()

2. ?峰??璀?ず妗?????瀛?

e_alter.text() print e_alter.text()

3. ?瑰?葷‘瀹?

e_alter.accept()

#?????瑰?誨??娑?|x ????

e_alter.dismiss()

4.????涓?绉?prompt绫誨??????杈??ユ?????浠ヨ?琛??艱???

e_prompt = driver.swtich_to_alter() e_prompt.send_keys("杈??ヤ?涓???)

涓轟?渚誇??劇ずswitch_to_alter()?規?锛?涓??㈡??杩?杈瑰??浜?涓?涓?灏?灏???椤甸???杩???????涓?绉?瀵矽??妗??ㄩ?ㄥ????涓??ワ??跺???ヨ?琛?妯℃??瀹???杩?绋?涓????扮??瀵矽??妗???

?

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
        <title></title>
    </head>
    <body>
        <div align="center">
        <h4>hello girl</h4>
        <input type="button" 慰nclick="showPro()" value="杈??ユ?寮圭??????"/>
        <input type="button" 慰nclick="showAlert2()" value="??绀哄脊绐?????"/>
        <input type="button" 慰nclick="showAlert()" value="纭?璁ゅ脊绐?????"/><br><br><br>
        <span id="textSpan"></span>
        
        </div>
    </body>
    <script>
        function showAlert(){            
            document.getElementById("textSpan").innerHTML="";
            if(confirm("浣???甯??ュ??锛?")){
                document.getElementById("textSpan").innerHTML="<font style='color: red;'>?ㄤ負浣?濡?姝よ??淇★?</font>";
            }else{
                document.getElementById("textSpan").innerHTML="<font style='color: red;'>?ㄤ負浣?濡?姝よ唉??锛?</font>";
            }
            
        }
        function showPro(){
            document.getElementById("textSpan").innerHTML="";
            con = prompt("杈???涓哄己?ヨ????锛?杈???涓哄乏?ョ??);
            if(con==1){
                document.getElementById("textSpan").innerHTML="<font style='color: green;'>寮哄?ユ??????????</font>";
            }else if(con==2){
                document.getElementById("textSpan").innerHTML="<font style='color: green;'>宸??ユ????绗ㄥ??</font>";
            }else{
                document.getElementById("textSpan").innerHTML="<font style='color: red;'>?ㄦ病????瑕?姹?杈??ワ?璇烽???拌???lt;/font>";
            }
        }
        function showAlert2(){
            document.getElementById("textSpan").innerHTML="";
            alert("?ㄦ??涓?涓?????锛????涓?涓?杩風?");
        }
    </script>
</html>      

?

涓??㈢??涓?涓?渚?瀛?锛?涓昏??ユ?绀哄?浣?澶???涓??㈣?寸??涓?绉?瀵矽??妗?????

??1.澶???alert瀵矽??妗???

#-*-coding:utf-8 -*-
import time
from selenium import webdriver
driver = webdriver.Chrome()
driver.maximize_window()
driver.get('file:///C:/Users/hunk/Desktop/alter.html')
'''?峰??alert瀵矽??妗???????,?瑰?繪????,寮瑰??lert瀵矽??妗?'''
driver.find_element_by_xpath('/html/body/div/input[2]').click()
'''?峰??alert瀵矽??妗?'''
alert = driver.switch_to_alert()
'''娣誨??绛?寰??堕??''
time.sleep(2)
'''?峰??璀???瀵矽??妗?????瀹?''
print (alert.text)  #???拌????瀵矽??妗???瀹?alert.accept()   #alert瀵矽??妗?灞?浜?璀???瀵矽??妗?锛???浠?杩??????芥?ュ??寮圭??
'''娣誨??绛?寰??堕??''
time.sleep(2)
driver.quit()      

?

?2.澶???confirm瀵矽??妗?

#-*-coding:utf-8 -*-
import time
from selenium import webdriver
driver = webdriver.Chrome()
driver.maximize_window()
driver.get('file:///C:/Users/hunk/Desktop/alter.html')
'''?峰??confirm瀵矽??妗???????,?瑰?繪????,寮瑰??onfirm瀵矽??妗?'''
driver.find_element_by_xpath('/html/body/div/input[3]').click()
'''?峰??confirm瀵矽??妗?'''
dialog_box = driver.switch_to_alert()
'''娣誨??绛?寰??堕??''
time.sleep(2)
'''?峰??瀵矽??妗?????瀹?''
print (dialog_box.text)  #???拌????瀵矽??妗???瀹?'''?瑰?彙??纭?璁ゃ???劇ず"?ㄤ負浣?濡?姝よ??淇★?"'''
dialog_box.accept()   #?ュ??寮圭??
print (driver.find_element_by_xpath('//*[@id="textSpan"]/font').text)
time.sleep(2)
'''??娆¤?峰??confirm瀵矽??妗???????,?瑰?繪????,寮瑰??onfirm瀵矽??妗?'''
driver.find_element_by_xpath('/html/body/div/input[3]').click()
'''??娆¤?峰??confirm瀵矽??妗?'''
dialog_box = driver.switch_to_alert()
'''?瑰?彙????娑????劇ず"?ㄤ負浣?濡?姝よ唉??锛?"'''
time.sleep(2)
dialog_box.dismiss()  #?抽???峰????娑?瀵矽??妗?
print (driver.find_element_by_xpath('//*[@id="textSpan"]/font').text)
driver.quit()      

3.澶???prompt瀵矽??妗?

#-*-coding:utf-8 -*-
import time
from selenium import webdriver
driver = webdriver.Chrome()
driver.maximize_window()
'''?峰??瀵矽??妗?杈???锛?骞朵??瑰?彙??纭?璁ゃ??,????妗?????绀?lt;宸??ユ????绗ㄥ??>,?瑰?彙????娑???????妗?????绀?lt;?ㄦ病????瑕?姹?杈??ワ?璇烽???拌???gt;'''
driver.get('file:///C:/Users/corrine/Desktop/alert.html')
'''?峰??prompt瀵矽??妗???????,?瑰?繪????,寮瑰??onfirm瀵矽??妗?'''
driver.find_element_by_xpath('/html/body/div/input[1]').click()
'''?峰??prompt瀵矽??妗?'''
dialog_box = driver.switch_to_alert()
'''娣誨??绛?寰??堕??''
time.sleep(2)
'''?峰??瀵矽??妗?????瀹?''
print (dialog_box.text)  #???拌????瀵矽??妗???瀹?dialog_box.send_keys("2")  #寮瑰?烘???杈???
dialog_box.accept()  #?ュ??
print (driver.find_element_by_xpath('//*[@id="textSpan"]/font').text)  #?峰???抽??寮圭??缁???  #?峰??纭?璁ゅ脊绐?缁???
'''杩???绛?寰???绉??ㄦ?璇???娑?'''
time.sleep(2)
#************************?瑰?彙????娑???,骞朵??峰???劇ず缁???**********************
driver.find_element_by_xpath('/html/body/div/input[1]').click()
'''?峰??prompt瀵矽??妗?'''
dialog_box = driver.switch_to_alert()
'''娣誨??绛?寰??堕??''
time.sleep(2)
dialog_box.dismiss()  #?抽??瀵矽??妗?
print (driver.find_element_by_xpath('//*[@id="textSpan"]/font').text)  #?峰???抽??寮圭??缁???
time.sleep(2)
driver.quit()      

繼續閱讀