關於自動化測試其實不少時候都是爲了節省時間作一些大批量的複用性工做,在正式學習自動化腳本編寫以前,這裏引用陳建忠老師的博客內容,但願你們能瞭解一下關於什麼是自動化的知識,在往後作自動化測試的過程當中會根據不一樣的項目、不一樣的需求、不一樣的測試內容制定合理的自動化測試方案。html
https://www.cnblogs.com/111testing/p/6048190.html
前面學習了不少對於寫代碼進行鋪墊的內容,從這一章節開始咱們就要學習如何去使用selenium+python對網頁進行點擊、輸入、下拉、刷新等基本操做。python
一、如何使用selenium+python打開火狐瀏覽器並進入百度git
#coding:utf-8 '''utf-8爲中文編碼格式 調用selenium模塊中webdriver瀏覽器驅動 調用時間模塊''' from selenium import webdriver import time driver = webdriver.Firefox() #driver = webdriver.Ie()#ie瀏覽器驅動調用方法 #driver = webdriver.Chrome()#谷歌瀏覽器驅動調用方法 driver.get("https://www.baidu.com")
2.設置休眠時間(運行時會等待3S,通常設置時間是爲了等待打開頁面加載完成)github
#coding:utf-8 '''utf-8爲中文編碼格式 調用selenium模塊中webdriver瀏覽器驅動 調用時間模塊''' from selenium import webdriver import time driver = webdriver.Firefox() #driver = webdriver.Ie()#ie瀏覽器驅動調用方法 #driver = webdriver.Chrome()#谷歌瀏覽器驅動調用方法 driver.get("https://www.baidu.com") time.sleep(3)#設置休眠時間爲3S
3.隱性等待(該方法爲設置一個遠超頁面加載時間的範圍,如頁面加載須要20s,設置時將加載時間設置爲30S,該方法會判斷頁面加載完成直接進行下一步操做)web
#coding:utf-8 '''utf-8爲中文編碼格式 調用selenium模塊中webdriver瀏覽器驅動 調用時間模塊''' from selenium import webdriver import time driver = webdriver.Firefox() #driver = webdriver.Ie()#ie瀏覽器驅動調用方法 #driver = webdriver.Chrome()#谷歌瀏覽器驅動調用方法 driver.get("https://www.baidu.com") implicitly_wait(30)#設置隱性等待時間
implicitly_wait()比time.sleep更加智能,time.sleep只能選擇一個固定的等待時間,implicitly_wait()能夠在一個時間範圍內進行等待。
implicitly_wait()的缺點爲頁面加載時間可能過長,隨着ajax技術的普遍應用,如今網頁中各元素內容能夠實現逐步加載,可能咱們所須要的元素已經加載出來,可是對於隱性等待的方法來講,它須要等待整個網頁加載完畢才能進行下一步,因此須要的時間可能過長,延長執行過程時間。
三、顯性等待(WebDriverWait)
顯性等待會根據預加條件對某一個元素進行判斷,通過多少秒對該元素進行查找,若是該元素已經加載出來則直接進行下一步,若是該元素沒有加載出來則繼續等待元素加載,也可用該方法設定某個元素在規定時間內不可見,具體根據本身的測試需求定製測試方案。
#coding:utf-8 '''utf-8爲中文編碼格式 調用selenium模塊中webdriver瀏覽器驅動 調用時間模塊''' from selenium import webdriver import time from selenium.webdriver.support.wait import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.by import By driver = webdriver.Firefox() driver.get('https://huilansame.github.io') WebDriverWait(driver,20,0.5).until( EC.presence_of_element_located((By.LINK_TEXT, 'CSDN'))) print (driver.find_element_by_link_text('CSDN').get_attribute('href')) driver.close()
四、頁面刷新(須要在特定內容的界面沒有加載出來時或其餘場景中進行頁面刷新操做)ajax
#coding:utf-8 '''utf-8爲中文編碼格式 調用selenium模塊中webdriver瀏覽器驅動 調用時間模塊''' from selenium import webdriver import time driver = webdriver.Firefox() #driver = webdriver.Ie()#ie瀏覽器驅動調用方法 #driver = webdriver.Chrome()#谷歌瀏覽器驅動調用方法 driver.get("https://www.baidu.com") driver.refresh()#對當前頁面進行刷新
5.瀏覽器窗口放大及縮小(咱們在使用瀏覽器的過程當中可能須要點擊有上角的□對瀏覽器進行放大或者縮小操做,固然了,selenium也能夠給咱們提供相應的方法對瀏覽器進行各類比較人性化的操做。)瀏覽器
#coding:utf-8 '''utf-8爲中文編碼格式 調用selenium模塊中webdriver瀏覽器驅動 調用時間模塊''' from selenium import webdriver import time driver = webdriver.Firefox() #driver = webdriver.Ie()#ie瀏覽器驅動調用方法 #driver = webdriver.Chrome()#谷歌瀏覽器驅動調用方法 driver.get("https://www.baidu.com") time.sleep(3) #自定義設置瀏覽器窗口大小 driver.set_window_size(600*960) time.sleep(2) #設置瀏覽器窗口最大化 driver.maximize_window() #設置瀏覽器窗口最小化 driver.minimize_window()
六、前進或後退至某一個頁面學習
#coding:utf-8 '''utf-8爲中文編碼格式 調用selenium模塊中webdriver瀏覽器驅動 調用時間模塊''' from selenium import webdriver import time driver = webdriver.Firefox() #driver = webdriver.Ie()#ie瀏覽器驅動調用方法 #driver = webdriver.Chrome()#谷歌瀏覽器驅動調用方法 driver.get("https://www.baidu.com") time.sleep(3) #在輸入框中搜索「知乎」 driver.find_element_by_id("kw").sendkey("知乎") #點擊「百度一下」按鈕進行搜索 driver.find_element_by_id("su").click #等待3S time.sleep(3) #點擊下一頁按鈕 driver.find_element_by_class_name("n") #返回上一頁 driver.back() time.sleep(3) #切換到下一頁 driver.forward()
七、關閉窗口(根據測試場景的不一樣須要進行不一樣的操做,driver.quit()能夠殺死當前瀏覽器進程,driver.close()能夠關閉當前瀏覽器窗口)測試
#coding:utf-8 '''utf-8爲中文編碼格式 調用selenium模塊中webdriver瀏覽器驅動 調用時間模塊''' from selenium import webdriver import time driver = webdriver.Firefox() #driver = webdriver.Ie()#ie瀏覽器驅動調用方法 #driver = webdriver.Chrome()#谷歌瀏覽器驅動調用方法 driver.get("https://www.baidu.com") time.sleep(3) #關閉瀏覽器進程 driver.quit() #關閉當前窗口 #driver.close()
八、截圖(截圖方法爲get_screenshot_as_file能夠在瀏覽器中使用截圖操做,在括號中須要配置截圖地址及文件名稱和文件格式。)ui
#coding:utf-8 '''utf-8爲中文編碼格式 調用selenium模塊中webdriver瀏覽器驅動 調用時間模塊''' from selenium import webdriver import time driver = webdriver.Firefox() #driver = webdriver.Ie()#ie瀏覽器驅動調用方法 #driver = webdriver.Chrome()#谷歌瀏覽器驅動調用方法 driver.get("https://www.baidu.com") time.sleep(3) driver.get_screenshot_as_file("C\\test\\123.jpg")