網頁html彈窗公告代碼「js彈窗編程代碼大全」

JavaScript 彈出框處理


js彈出框的方法使用:

先使用switch_to.alert切換到瀏覽器彈出框

再使用alert類的操作方法:

  • dismiss():取消
  • accept():確定
  • text():獲取彈框中的文本信息
  • send_keys():往彈框中輸入文本信息

js之:Alerts彈框:

web自動化測試JavaScript 彈出框處理
web自動化測試JavaScript 彈出框處理

import time
from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities


desired_capabilities = DesiredCapabilities.CHROME
desired_capabilities['pageLoadStrategy'] = 'normal'
driver = webdriver.Chrome()
start_time = time.time()
driver.get('https://www.selenium.dev/documentation/en/webdriver/js_alerts_prompts_and_confirmations/')
end_time = time.time() - start_time
print(end_time)
driver.find_element_by_xpath("//a[contains(text(),'See an example alert')]").click()
WebDriverWait(driver, 10).until(EC.alert_is_present())
alert = driver.switch_to.alert
text_info = alert.text
print(text_info)
alert.accept()
time.sleep(10)
driver.quit()

控制台顯示了js彈框中的文本信息:


F:virtualEnvironmentvenvScriptspython.exe F:/git/AuomationTest/AuomationTestProject/webTestAuomation/element_localization.py
17.46286106109619
Sample alert

Process finished with exit code 0

js之:Confirm彈框:

web自動化測試JavaScript 彈出框處理
web自動化測試JavaScript 彈出框處理

import time
from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

desired_capabilities = DesiredCapabilities.CHROME
desired_capabilities['pageLoadStrategy'] = 'normal'
driver = webdriver.Chrome()
start_time = time.time()
driver.get('https://www.selenium.dev/documentation/en/webdriver/js_alerts_prompts_and_confirmations/')
end_time = time.time() - start_time
print(end_time)
driver.find_element_by_css_selector(
    "section:nth-child(2) div.padding.highlightable:nth-child(2) div:nth-child(3) p:nth-child(8) > a.highlight").click()
WebDriverWait(driver, 10).until(EC.alert_is_present())
alert = driver.switch_to.alert
text_info = alert.text
print(text_info)
alert.dismiss()
time.sleep(10)
driver.quit()

控制台顯示了js彈框中的文本信息:


F:virtualEnvironmentvenvScriptspython.exe F:/git/AuomationTest/AuomationTestProject/webTestAuomation/element_localization.py
31.936458826065063
Are you sure?

Process finished with exit code 0

js之:Prompt彈框:

web自動化測試JavaScript 彈出框處理
web自動化測試JavaScript 彈出框處理

import time
from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

desired_capabilities = DesiredCapabilities.CHROME
desired_capabilities['pageLoadStrategy'] = 'normal'
driver = webdriver.Chrome()
start_time = time.time()
driver.get('https://www.w3school.com.cn/tiy/t.asp?f=js_prompt')
driver.find_element_by_css_selector(
    "body:nth-child(2) div:nth-child(2) ul:nth-child(1) li:nth-child(4) > a:nth-child(1)").click()
iframe = driver.find_element_by_xpath("//iframe[@id='iframeResult']")
driver.switch_to.frame(iframe)
driver.find_element_by_css_selector("body:nth-child(2) > button:nth-child(2)").click()
WebDriverWait(driver, 10).until(EC.alert_is_present())
alert = driver.switch_to.alert
alert.send_keys("自動化測試")
time.sleep(2)
alert.accept()

注意:敲黑板並劃重點:

alert.send_key()輸入的數據,是不會把彈框中的默認參數替換掉的

所以百度了一個能看到alert彈框返回值的栗子:

首先我在send_key()中輸入的是 ” 自動化測試 ” 然後點擊 ” 確定 ” ,頁面顯示的就是我輸入的返回值:

web自動化測試JavaScript 彈出框處理
web自動化測試JavaScript 彈出框處理

以上總結或許能幫助到你,或許幫助不到你,但還是希望能幫助到你,如有疑問、歧義,評論區留言會及時修正發布,謝謝!

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/250297.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-13 13:31
下一篇 2024-12-13 13:31

相關推薦

發表回復

登錄後才能評論