App下載

python自動化測試腳本怎么寫?python selenium教程來了!

猿友 2021-06-01 14:56:09 瀏覽數(shù) (5071)
反饋

很多想要做軟件測試的小伙伴們可能會聽到別的小伙伴安利一個(gè)強(qiáng)大的框架——selenium,然后又因?yàn)榕驴蚣芘渲寐闊┒t遲未能開始學(xué)習(xí)?,F(xiàn)在,python selenium 教程來了!使用相對易學(xué)易配置的 python 語言進(jìn)行開發(fā),學(xué)習(xí)成本低,對編程的要求也沒有其他語言那么高,確定不感興趣?感興趣的小伙伴們趕緊跟緊小編節(jié)奏,開始學(xué)習(xí) python 自動化測試吧!

閱前須知:

建議初學(xué)者們先系統(tǒng)地學(xué)習(xí)完 python 編程課再進(jìn)行該框架的學(xué)習(xí):

python開發(fā)課程

selenium 配置可以參考這篇文章:selenium—自動化測試?yán)鞯陌惭b配置

創(chuàng)建 webdriver 對象

使用如下代碼,創(chuàng)建一個(gè) webdriver 對象,才能進(jìn)行接下來的操作。

?driver = webdriver.Chrome()?

從定位元素開始

selenium 有八種定位方式,分別為 id 定位,name 定位,class 定位,tag 定位,link 定位,partial link 定位,css 定位和 Xpath 定位。其中 Xpath 定位使用比較廣泛,小編接下來使用 Xpath 定位進(jìn)行演示:

?driver.find_element_by_xpath("http://*[@id='nav']/div/ul/li[2]").click()?

driver 下面有 ??find_element_by_xpath?? 方法可以獲取一個(gè) html 元素,獲取到這個(gè)元素后可以使用 ?click()? 方法點(diǎn)擊這個(gè)元素。??find_element_by_xpath?? 方法里面可以進(jìn)行 Xpath 的選擇。關(guān)于 Xpath 的教程可以參考:Xpath教程

瀏覽器控制

瀏覽器控制直接調(diào)用 driver 對象的方法即可對瀏覽器進(jìn)行控制操作。

#控制窗口大小
driver.set_window_size(480,800)
#設(shè)置休眠,單位為秒
sleep(2)
#控制頁面后退
driver.back()
sleep(2)
#控制頁面前進(jìn)
driver.forward()
sleep(2)
#控制頁面刷新
driver.refresh()
#最大化頁面
driver.maximize_window()

鍵盤控制

選中元素后,使用 ?send_keys() ? 可以將指定的內(nèi)容鍵入到目標(biāo)元素中(一般用于輸入數(shù)據(jù))。

#元素操作-模擬輸入(定位到輸入框),通過send_keys發(fā)送輸入的數(shù)據(jù)
driver.find_element_by_xpath("http://*[@id='searched_content']").send_keys("java教程")

鼠標(biāo)控制

使用ActionChains對象可以進(jìn)行鼠標(biāo)的操作,在鼠標(biāo)操作之后要加 ?perform()? 方法將暫存的鼠標(biāo)操作執(zhí)行出去。

# #使用right_來存放選中的元素對象
right_click =driver.find_element_by_xpath("http://*[@id='searched_content']")
#使用如下代碼,可以右擊right_對象
ActionChains(driver).context_click(right_click).perform()
move =driver.find_element_by_xpath('/html/body/div[4]/div')
#使用如下代碼,可以懸停在move對象上
ActionChains(driver).move_to_element(move).perform()

上面所有代碼合成

在以上的代碼均為非完整版,以下是完整版的代碼,包括引用 selenium 庫等代碼。

from selenium import webdriver
#使用selenium要導(dǎo)入selenium包
from selenium.webdriver.common.action_chains import ActionChains
#使用鼠標(biāo)點(diǎn)擊事件要導(dǎo)入ActionChains
from time import sleep
#使用sleep要導(dǎo)入time包

#創(chuàng)建一個(gè)webdriver對象
driver = webdriver.Chrome()
#使用webdriver對象訪問w3Cschool
driver.get("http://o2fo.com/")
#使用Xpath方法獲取頁面上一個(gè)元素的定位,使用click方法為點(diǎn)擊這個(gè)元素
driver.find_element_by_xpath("http://*[@id='nav']/div/ul/li[2]").click()
#控制窗口大小
driver.set_window_size(480,800)
#設(shè)置休眠,單位為秒
sleep(2)
#控制頁面后退
driver.back()
sleep(2)
#控制頁面前進(jìn)
driver.forward()
sleep(2)
#控制頁面刷新
driver.refresh()
#最大化頁面
driver.maximize_window()

#元素操作-模擬輸入(定位到輸入框),通過send_keys發(fā)送輸入的數(shù)據(jù)
driver.find_element_by_xpath("http://*[@id='searched_content']").send_keys("java教程")
#元素操作,清空文本
sleep(2)
driver.find_element_by_xpath("http://*[@id='searched_content']").clear()
# #使用right_來存放選中的元素對象
right_click =driver.find_element_by_xpath("http://*[@id='searched_content']")
#使用如下代碼,可以右擊right_對象
ActionChains(driver).context_click(right_click).perform()
move =driver.find_element_by_xpath('/html/body/div[4]/div')
#使用如下代碼,可以懸停在move對象上
ActionChains(driver).move_to_element(move).perform()

小結(jié)

掌握了以上的操作,就算是基本入門 selenium 了。由于篇幅原因,小編只能簡單地挑一些比較簡單的 selenium 的基礎(chǔ)操作進(jìn)行講解,后續(xù)小編還會繼續(xù)介紹該框架,希望各位看官大大多多捧場。


1 人點(diǎn)贊