溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Python如何利用Selenium實(shí)現(xiàn)彈出框

發(fā)布時間:2022-06-09 10:38:21 來源:億速云 閱讀:684 作者:zzz 欄目:開發(fā)技術(shù)

這篇文章主要講解了“Python如何利用Selenium實(shí)現(xiàn)彈出框”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Python如何利用Selenium實(shí)現(xiàn)彈出框”吧!

JavaScript三種彈出對話框的簡單介紹

JavaScript的三種對話框是通過調(diào)用 "window對象" 的三個方法 "alert()"、"confirm()" 、"prompt()" 來獲得,我們可以利用這些對話框來完成 "js" 的輸入和輸出,實(shí)現(xiàn)與用戶進(jìn)行交互的js代碼。

下面就來簡單的了解一下這三種對話框吧。

alert() - 警告框

alert 是一個警告框,表現(xiàn)為直接彈出一個提示窗,該提示窗只有一個按鈕確定按鈕,點(diǎn)擊 確定 按鈕后無返回值;alert 警告框經(jīng)常被用于確保用戶可以得到某些信息。當(dāng)警告框出現(xiàn)后,用戶需要點(diǎn)擊確定按鈕才能繼續(xù)進(jìn)行操作。語法:alert("文本")

alert 警告框代碼示例如下:

<html>
    <head>
        <title>html頁面 - alert</title>
        <a id="tooltip" href="#" data-toggle="tooltip" title="This is alert" onclick="alert(this.title);">點(diǎn)擊我,彈出 alert</a>
    </head>
</html>

Python如何利用Selenium實(shí)現(xiàn)彈出框

confirm() - 確認(rèn)框

confirm 是確認(rèn)框,它有兩個按鈕,確定 與 取消 ,返回 truefalse 。確認(rèn)框用于讓用戶可以驗(yàn)證或者接受某些信息。當(dāng)確認(rèn)框出現(xiàn)后,用戶需要點(diǎn)擊確定或者取消按鈕才能繼續(xù)進(jìn)行操作。如果用戶點(diǎn)擊確認(rèn),那么返回值為 true。如果用戶點(diǎn)擊取消,那么返回值為 false。 語法:confirm("文本")

confirm 確認(rèn)框代碼示例如下:

<html>
	<head>
		<title>confirm</title>
	</head>
	<body>
執(zhí)行 "選擇" 后顯示的結(jié)果
		<script language="JavaScript">
			

			if(confirm("準(zhǔn)備好了么?")){
				alert("Go!");
			}
			else{
				alert("Hold on!");
			}
		</script>
	</body>
</html>

Python如何利用Selenium實(shí)現(xiàn)彈出框

cprompt() - 提示框

prompt 是提示框,它會返回輸入框輸入的消息,或者其默認(rèn)值;提示框經(jīng)常用于提示用戶在進(jìn)入頁面前輸入某個值。當(dāng)提示框出現(xiàn)后,用戶需要輸入某個值,然后點(diǎn)擊確認(rèn)或取消按鈕才能繼續(xù)操縱。如果用戶點(diǎn)擊確認(rèn),那么返回值為輸入的值。如果用戶點(diǎn)擊取消,那么返回值為 null。語法:prompt("文本","默認(rèn)值")

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>

Python如何利用Selenium實(shí)現(xiàn)彈出框

以上就是比較常用的三種彈出層的原生 JavaScript 組件。

selenium 處理彈出對話框的常用方法

常用方法如下:

  • text:返回 alert、confirm、prompt 里面的文字信息

  • accept:接受

  • dismiss:取消

  • send_keys:向 prompt 里面輸入文字

selenium 處理 alert() 彈窗

本地 alert.html 彈窗頁面如下:

Python如何利用Selenium實(shí)現(xiàn)彈出框

代碼示例如下:

# 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()          # 點(diǎn)擊頁面 id='tooltip' 的元素(會彈出alert)
sleep(1)
alert = driver.switch_to.alert      # 選擇 alert
print(alert.text)                   # 打印輸出 alert 的內(nèi)容
alert.accept()                      # 針對 alert 執(zhí)行 accept(接受)方法
sleep(2)

driver.quit()

運(yùn)行結(jié)果如下:

Python如何利用Selenium實(shí)現(xiàn)彈出框

selenium 處理 confirm() 彈窗

本地 confirm.html 彈窗頁面如下:

Python如何利用Selenium實(shí)現(xiàn)彈出框

代碼示例如下:

# 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" 的內(nèi)容
sleep(1)
confirm.dismiss()      # 針對 confirm 執(zhí)行 dismiss(取消)方法
sleep(1)
alert = driver.switch_to.alert      # 選擇 confirm 執(zhí)行 accept(接受)方法后的 alert
print(alert.text)      # 打印輸出 alert 的內(nèi)容
sleep(1)
alert.accept()         # 針對 alert 執(zhí)行 accept(接受)方法
sleep(1)

driver.quit()

運(yùn)行結(jié)果如下:

Python如何利用Selenium實(shí)現(xiàn)彈出框

上文的腳本中,我們通過 switch_to 的方法選擇 alert 略顯得麻煩一些,能不能直接通過 confirm 把它當(dāng)成一個來處理呢?嘗試一下看看&hellip;

代碼示例如下:

# 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" 的內(nèi)容
sleep(1)
confirm.dismiss()      # 針對 confirm 執(zhí)行 dismiss(取消)方法
sleep(1)
print(confirm.text)      # 打印輸出 alert 的內(nèi)容
sleep(1)
confirm.accept()         # 針對 confirm 執(zhí)行 accept(接受)方法
sleep(1)

driver.quit()

運(yùn)行結(jié)果如下:

Python如何利用Selenium實(shí)現(xiàn)彈出框

從這里我們可以發(fā)現(xiàn),不管彈出多少個 alert ,都可以使用同一個 switch_to 的結(jié)果一起來做后續(xù)的操作,不需要不斷的去 switch_to 。因?yàn)樗且粋€系統(tǒng)組件,不管它是什么形態(tài),都可以這樣去支持。

selenium 處理 prompt() 彈窗

OK,接下來還剩下左后一個 彈窗組件 - prompt(),頁面如下,有一個輸入框,兩個按鈕,可以選擇確定或取消。

Python如何利用Selenium實(shí)現(xiàn)彈出框

代碼示例如下:

# 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" 文件默認(rèn)輸入框里傳入的是 "Husky" ,這里我們傳入 "Husky I love U"
prompt.accept()
sleep(1)

driver.quit()

運(yùn)行結(jié)果如下:

Python如何利用Selenium實(shí)現(xiàn)彈出框

感謝各位的閱讀,以上就是“Python如何利用Selenium實(shí)現(xiàn)彈出框”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對Python如何利用Selenium實(shí)現(xiàn)彈出框這一問題有了更深刻的體會,具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI