您好,登錄后才能下訂單哦!
這篇文章主要講解了“Python如何利用Selenium實現彈出框”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Python如何利用Selenium實現彈出框”吧!
JavaScript的三種對話框是通過調用 "window對象" 的三個方法 "alert()"、"confirm()" 、"prompt()" 來獲得,我們可以利用這些對話框來完成 "js" 的輸入和輸出,實現與用戶進行交互的js代碼。
下面就來簡單的了解一下這三種對話框吧。
alert
是一個警告框,表現為直接彈出一個提示窗,該提示窗只有一個按鈕確定按鈕,點擊 確定 按鈕后無返回值;alert
警告框經常被用于確保用戶可以得到某些信息。當警告框出現后,用戶需要點擊確定按鈕才能繼續進行操作。語法:alert("文本")
。
alert
警告框代碼示例如下:
<html> <head> <title>html頁面 - alert</title> <a id="tooltip" href="#" data-toggle="tooltip" title="This is alert" onclick="alert(this.title);">點擊我,彈出 alert</a> </head> </html>
confirm
是確認框,它有兩個按鈕,確定 與 取消 ,返回 true
或 false
。確認框用于讓用戶可以驗證或者接受某些信息。當確認框出現后,用戶需要點擊確定或者取消按鈕才能繼續進行操作。如果用戶點擊確認,那么返回值為 true。如果用戶點擊取消,那么返回值為 false。 語法:confirm("文本")
confirm
確認框代碼示例如下:
<html> <head> <title>confirm</title> </head> <body> 執行 "選擇" 后顯示的結果 <script language="JavaScript"> if(confirm("準備好了么?")){ alert("Go!"); } else{ alert("Hold on!"); } </script> </body> </html>
prompt
是提示框,它會返回輸入框輸入的消息,或者其默認值;提示框經常用于提示用戶在進入頁面前輸入某個值。當提示框出現后,用戶需要輸入某個值,然后點擊確認或取消按鈕才能繼續操縱。如果用戶點擊確認,那么返回值為輸入的值。如果用戶點擊取消,那么返回值為 null。語法:prompt("文本","默認值")
prompt
提示框代碼示例如下:
<html> <head> </head> <body> <script language='JavaScript' type="text/javascript" > var aa= prompt("What's your name?","Husky");document.write("Welcome to my world, "+aa+"<br>") </script> </body> </html>
以上就是比較常用的三種彈出層的原生 JavaScript 組件。
常用方法如下:
text:返回 alert、confirm、prompt
里面的文字信息
accept:接受
dismiss:取消
send_keys:向 prompt
里面輸入文字
本地 alert.html
彈窗頁面如下:
代碼示例如下:
# coding:utf-8 from time import sleep from selenium import webdriver driver = webdriver.Chrome() # 啟動 Chrome瀏覽器的 driver driver.maximize_window() # Chrome 瀏覽器最大化 driver.get('file:///Users/workspace/WEB_TEST_HTML/alert.html') # 打開本地的 "alert.html" 文件 sleep(1) driver.find_element_by_id('tooltip').click() # 點擊頁面 id='tooltip' 的元素(會彈出alert) sleep(1) alert = driver.switch_to.alert # 選擇 alert print(alert.text) # 打印輸出 alert 的內容 alert.accept() # 針對 alert 執行 accept(接受)方法 sleep(2) driver.quit()
運行結果如下:
本地 confirm.html
彈窗頁面如下:
代碼示例如下:
# coding:utf-8 from time import sleep from selenium import webdriver driver = webdriver.Chrome() # 啟動 Chrome瀏覽器的 driver driver.maximize_window() # Chrome 瀏覽器最大化 driver.get('file:///Users/workspace/WEB_TEST_HTML/confirm.html') # 打開本地的 "alert.html" 文件 sleep(1) confirm = driver.switch_to.alert # 不管是 alert 還是 confirm、cprompt ,"switch_to" 的方式是一樣的。 print(confirm.text) # 打印輸出 "confirm" 的內容 sleep(1) confirm.dismiss() # 針對 confirm 執行 dismiss(取消)方法 sleep(1) alert = driver.switch_to.alert # 選擇 confirm 執行 accept(接受)方法后的 alert print(alert.text) # 打印輸出 alert 的內容 sleep(1) alert.accept() # 針對 alert 執行 accept(接受)方法 sleep(1) driver.quit()
運行結果如下:
上文的腳本中,我們通過 switch_to
的方法選擇 alert
略顯得麻煩一些,能不能直接通過 confirm
把它當成一個來處理呢?嘗試一下看看…
代碼示例如下:
# coding:utf-8 from time import sleep from selenium import webdriver driver = webdriver.Chrome() # 啟動 Chrome瀏覽器的 driver driver.maximize_window() # Chrome 瀏覽器最大化 driver.get('file:///Users/workspace/WEB_TEST_HTML/confirm.html') # 打開本地的 "alert.html" 文件 sleep(1) confirm = driver.switch_to.alert # 不管是 alert 還是 confirm、cprompt ,"switch_to" 的方式是一樣的。 print(confirm.text) # 打印輸出 "confirm" 的內容 sleep(1) confirm.dismiss() # 針對 confirm 執行 dismiss(取消)方法 sleep(1) print(confirm.text) # 打印輸出 alert 的內容 sleep(1) confirm.accept() # 針對 confirm 執行 accept(接受)方法 sleep(1) driver.quit()
運行結果如下:
從這里我們可以發現,不管彈出多少個 alert
,都可以使用同一個 switch_to
的結果一起來做后續的操作,不需要不斷的去 switch_to
。因為它是一個系統組件,不管它是什么形態,都可以這樣去支持。
OK,接下來還剩下左后一個 彈窗組件 - prompt()
,頁面如下,有一個輸入框,兩個按鈕,可以選擇確定或取消。
代碼示例如下:
# coding:utf-8 from time import sleep from selenium import webdriver driver = webdriver.Chrome() # 啟動 Chrome瀏覽器的 driver driver.maximize_window() # Chrome 瀏覽器最大化 driver.get('file:///Users/workspace/WEB_TEST_HTML/prompt.html') # 打開本地的 "alert.html" 文件 sleep(1) prompt = driver.switch_to.alert print(prompt.text) sleep(1) prompt.send_keys('Husky I love U') # "prompt.html" 文件默認輸入框里傳入的是 "Husky" ,這里我們傳入 "Husky I love U" prompt.accept() sleep(1) driver.quit()
運行結果如下:
感謝各位的閱讀,以上就是“Python如何利用Selenium實現彈出框”的內容了,經過本文的學習后,相信大家對Python如何利用Selenium實現彈出框這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。