在通過python+selenium撰寫ui自動化腳本的時候,我遇到過很多需要注意的點,今天分享給大家一下,
一、睡眠時間
1、 強制等待時間 sleep()
必須匯入time包后才可以使用,強制等待生效時間=頁面跳轉時間+sleep()設定休眠時間
強制等待時間使用語法:sleep(s) s表示時間,以秒為單位 例:sleep(2) 休眠2s
2、顯示等待時間 WebDriverWait()
必須匯入WebDriverWait包才可以使用,顯示等待時間是針對單個元素生效的,當在規定時間內找到了對應元素,則執行下一步操作,
顯示等待時間使用語法:
WebDriverWait(x,y,z).until(lambda x:x.find_element_by_元素定位方法(“對應元素方法的值”))
x表示網頁視窗物件
y表示總等待時間(s)
z表示等待程序中,每隔多久查看一次元素,單位s
ntil是固定格式,可以理解為直到元素定位到為止,lambda x:x是一個匿名函式構建的方法,這里不太好理解可以理解為固定格式lambda總體就是網頁視窗物件,而后面的.find_element_by_…就是援用之前的定位方法
3、隱式等待時間 implicitly_wait()
智能等待時間,是針對全域的元素都生效,不需要匯入包,當在規定時間內找到了對應元素,則執行下一步操作,
隱等待時間使用語法: 網頁物件名.implicity_wait()
from selenium import webdriver
from time import sleep #匯入強制等待時間的包
from selenium.webdriver.support.ui import WebDriverWait #匯入顯示等待時間的包
dr = webdriver.Firefox()
dr.maximize_window()
dr.implicitly_wait(5) #隱式時間等待,智能等待,針對于全域
dr.get(“ https://www.baidu.com ”)
sleep(2) #休眠2s
a = WebDriverWait(dr,10,2).until(lambda x:x.find_element_by_id(“kw”)) #顯示等待時間,針對于單個元素進行時間的等待
a.send_keys(“123”)
總結:只針對一個元素進行時間的等待,要是找不到該元素則會一直消耗完所有的等待時間才進行下一步
二、定位alert彈出框
alert彈出框包含三種:
alert 提醒對話框
confirm 確認對話框
prompt 要求用戶輸入,然后回傳結果的對話框
1、定位方法
switch_to.alert:定位到alert/confirm/prompt
text:回傳alert/confirm/prompt 中的文字資訊,
accept:點擊確認按鈕,
dismiss:點擊取消按鈕,如果有的話,
send_keys:輸入值,這個alertconfirm 沒有對話框就不能用了,不然會報錯,
2、alert用法

3、confirm用法

4、prompt用法

給大家推薦一個軟體測驗技術交流群:1079636098 群友福利免費領取

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/250483.html
標籤:其他
下一篇:Python版apollo客戶端
