.
搜索
相關推薦
熱門標簽

杭州app開發:Selenium自動確定Prompt和Alert彈框

時間:2020-02-28 12:48:47

什么是Prompt框?
prompt是 javascript語言中的一個方法,主要用處是顯示提示對話框。
什么是Alert框?
alert()方法用于顯示帶有一條指定消息和一個 OK 按鈕的警告框。 語法 alert(message) 參數描述 message 要在window 上彈出的對話框中顯示的純文本。

這篇文章的目的:
在做自動化的時候,在不知道什么情況下會突然彈出一個alert框,他們也可能是Prompt框。他們會嚴重阻斷你程序的運行,為了解決這個問題,就需要Selenium的驅動能自動同意對話框。

實現這一行為則需要了解一個參數,unhandledPromptBehavior。
這一參數的用途是去處理那些以外的警報問題,當然了,這一定包括了alert與prompt。
它的取值有哪些呢?
我們怎么來使用這個參數,在我們的項目中發揮作用?
在這里,我會舉出2個例子的使用方式
第一種:
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities
import DesiredCapabilities
caps = DesiredCapabilities().CHROME
caps["unhandledPromptBehavior"] = "dismiss and notify"
driver = webdriver.Chrome(desired_capabilities=caps)
driver.get("http://google.com")

第二種:
chrome_options = Options()
chrome_options.set_capability('unhandledPromptBehavior', "accept")
driver = webdriver.Chrome(options=chrome_options)
driver.execute_script('alert(\"正在測試彈框是否被自動確定\");')
print(driver.title)
time.sleep(2000)
這里需要說明一下,如果你只彈框,而沒有使用driver進行其他代碼操作,那么這個彈框并不會被自動確定,一定要執行一句有用的代碼,比如說driver.title 或者 driver.findElement

當然,如果你發現你的彈框依然沒有按上文所說的"正確被處理",那可能是你關閉了w3c引擎,這個功能必須得基于它,如果你為了使用TouchActions.tap,你一定會關閉w3c。
關閉的方法是:
chrome_options.add_experimental_option('w3c', False)
所以你應該把這個值設置為True

久久久精品2019免费观看