1、背景
- 有些頁面彈出框,如果不處理,就無法做后續(xù)操作
2、彈窗的分類
2.1 警告提示彈窗
- 【描述】:包含提示信息和【確認(rèn)】按鈕
- 【操作】:1、獲取彈窗內(nèi)容;2、進(jìn)行“確認(rèn)”操作
- 【語法實現(xiàn)】
-
- 1、獲取彈窗內(nèi)容:
driver.switch_to.alert.text
- 1、獲取彈窗內(nèi)容:
-
- 2、進(jìn)行確認(rèn)操作:
driver.switch_to.alert.accept()
- 2、進(jìn)行確認(rèn)操作:
- 【代碼實現(xiàn)】
# 導(dǎo)包
from selenium import webdriver
from selenium.webdriver.common.by import By
# 導(dǎo)入鼠標(biāo)操作的包
from selenium.webdriver.common.action_chains import ActionChains
# 導(dǎo)入顯示元素等待的包
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time
# 定義一個谷歌瀏覽器對象
driver = webdriver.Chrome()
# 打開百度首頁
driver.get('https://www.baidu.com')
# 定位到頁面的“設(shè)置”元素,并使得光標(biāo)懸浮在該元素上
element1 = driver.find_element(By.CSS_SELECTOR, '#s-usersetting-top')
ActionChains(driver).move_to_element(element1).perform()
# 點擊“設(shè)置”元素下拉框中“搜索設(shè)置”鏈接
driver.find_element(By.LINK_TEXT, '搜索設(shè)置').click()
# 彈窗的彈出需要時間,元素等待是需要考慮的重要問題
# 顯式等待元素方法:等到指定的元素即可開始執(zhí)行,否則拋出異常
element2 = WebDriverWait(driver, 2, 0.5).until(EC.presence_of_element_located((By.LINK_TEXT, '保存設(shè)置')), "保存設(shè)置元素定位不到")
# 在彈出的彈窗中點擊“保存設(shè)置”鏈接
element2.click()
# 頁面停留2秒鐘,方便查看效果
time.sleep(2)
# 在彈出的警告彈窗中點擊“確定”按鈕
# 設(shè)置隱式等待
driver.implicitly_wait(2)
# 移到警告彈窗,獲取彈窗內(nèi)容,并點擊“確認(rèn)”
print(driver.switch_to.alert.text)
driver.switch_to.alert.accept()
# 退出瀏覽器
driver.quit()
2.2 確認(rèn)彈窗
- 【描述】:包含提示信息和【確認(rèn)】【取消】按鈕
- 【操作】:1、獲取彈窗內(nèi)容;2、進(jìn)行“確認(rèn)”操作;3、進(jìn)行取消操作
- 【語法實現(xiàn)】
-
- 1、獲取彈窗內(nèi)容:
driver.switch_to.alert.text
- 1、獲取彈窗內(nèi)容:
-
- 2、進(jìn)行確認(rèn)操作:
driver.switch_to.alert.accept()
- 2、進(jìn)行確認(rèn)操作:
-
- 3、進(jìn)行取消操作:
driver.switch_to.alert.dismiss()
- 3、進(jìn)行取消操作:
2.3 輸入信息提示彈窗
- 【描述】:包含提示信息、輸入信息框和【確認(rèn)】【取消】按鈕
- 【操作】:1、獲取彈窗內(nèi)容;2、輸入框輸入信息;3、進(jìn)行“確認(rèn)”操作;4、進(jìn)行取消操作
- 【語法實現(xiàn)】
-
- 1、獲取彈窗內(nèi)容:
driver.switch_to.alert.text
- 1、獲取彈窗內(nèi)容:
-
- 2、輸入框輸入信息:
driver.switch_to.alert.send_keys()
- 2、輸入框輸入信息:
-
- 3、進(jìn)行確認(rèn)操作:
driver.switch_to.alert.accept()
- 3、進(jìn)行確認(rèn)操作:
-
- 4、進(jìn)行取消操作:
driver.switch_to.alert.dismiss()
- 4、進(jìn)行取消操作:
文章來源地址http://www.zghlxwxcb.cn/news/detail-630722.html
文章來源:http://www.zghlxwxcb.cn/news/detail-630722.html
到了這里,關(guān)于【Python自動化測試】:彈窗的處理的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!