當前位置:吉日网官网 - 油畫收藏 - selenium之webdriver詳解——小白進階之路(二)

selenium之webdriver詳解——小白進階之路(二)

筆記:

01.設置元素等待時間

自動化測試的時候,元素定位沒有錯,但是跑腳本的時候卻報錯了

例如,登錄的時候要等登錄頁面加載出來才能輸入用戶名和密碼

selenium設置元素等待時間的3種方式及區別

1.sleep() --固定等待時間:強制等待,不能把握準確的等等時間,適合調試時用

2.implicitly_wait() --隱式等待時間:等頁面加載完成才執行下壹步操作,壹般設置壹次即可

3.WebDriverWait --顯示等待時間:配合untill()和not untill()方法,根據判斷條件 靈活處理等待時間

要先設置壹個超長時間,在這個時間內,程序根據調用頻率每隔幾秒查看壹下,如果條件滿足,則執行下壹步操作,若不滿足且超過了等待時間則拋出異常

導包:from selenium.webdriver.support.ui import WebDriverWait

使用:WebDriverWait(driver, 超時時間, 調用頻率, 要忽略的異常).until(要執行的方法, 超時時返回的錯誤信息)

實例:

replace:

02.鍵盤事件Keys類

制表符:send_keys(Keys.TAB)

退出鍵:send_keys(Keys.ESCAPE)

F1:send_keys(Keys.F1) f1~f12 以此類推

03.二次定位

顧名思義,通過多個元素,定位兩次

dr.find_element(By.CLASS_NAME,"s_input").send_keys("python")

二次定位:

dr.find_element(By.NAME,"query").find_element(By.CLASS_NAME,"s_input").send_keys("python")

04.selenium鼠標懸停類-- ActionChains()

導包:from selenium.webdriver.common.action_chainsimport ActionChains

實例:將鼠標移動至更多設置,懸停鼠標

elem1= dr.find_element(By.LINK_TEXT,"設置")

ActionChains(dr).move_to_element(elem1).perform()

05.selenium警告框的處理

很多web應用經常會遇到JavaScript編寫的alert 、confirm 以及prompt?彈窗,需要用到switch_to.alert來切換彈窗,並對彈窗進行輸入信息,關閉等處理。

switch_to.alert.text? --獲取彈窗文本信息

switch_to.alert.accept()? --點擊彈窗中確定按鈕

switch_to.alert.dismiss()? --點擊彈出中取消按鈕

switch_to.alert.sendKeys("字符串")? --在彈窗中輸入信息

實例:

06.下拉菜單選擇的三種方式

導包:from selenium.webdriver.support.uiimport Select

#選擇下拉框的o2

elem1 = dr.find_element(By.ID,"s3Id")

1:根據value值定位

Select(elem1).select_by_value("o2val")

2.根據index定位

Select(elem1).select_by_index(1)

3.根據下拉框文本信息定位

Select(elem1).select_by_visible_text("o2")

07.多窗口切換

window_handles --獲取所有窗口句柄

switch_to.window(指定窗口) --切換到指定窗口

08.selenium之JS操作瀏覽器滾動條位置

execute_script("window.scrollTo(0,n);")

09.selenium之JS操作隱藏元素

隱藏元素的標識:style="display:none;"

壹般我們通過將隱藏元素的屬性修改成顯示再定位

10.操作excel文件

將測試數據參數化用到

10.1準備參數化數據文件

10.2導包

打開文件,填寫文檔路徑

運行結果:

定位到sheet的位置

讀取sheet的行和列的內容

#讀取表的行的方法

rows = sheet1.nrows

print("行數",rows)

columns = sheet1.ncols

print("列數",columns)

讀取指定行的值

#讀取指定行的值

rowValue1 = sheet1.row_values(0)

print(rowValue1)

#讀取指定列的值

colValue1 = sheet1.col_values(0)

print(colValue1)

#輸出所有用戶名和對應的密碼

for iin range(1,rows):

print("用戶名:" + sheet1.row_values(i)[0] +",密碼:" + sheet1.row_values(i)[1])

  • 上一篇:我最喜歡的美術作品
  • 下一篇:推理黑童謠:十只兔子
  • copyright 2024吉日网官网