很多想要做軟件測(cè)試的小伙伴們可能會(huì)聽到別的小伙伴安利一個(gè)強(qiáng)大的框架——selenium,然后又因?yàn)榕驴蚣芘渲寐闊┒t遲未能開始學(xué)習(xí)。現(xiàn)在,python selenium 教程來(lái)了!使用相對(duì)易學(xué)易配置的 python 語(yǔ)言進(jìn)行開發(fā),學(xué)習(xí)成本低,對(duì)編程的要求也沒有其他語(yǔ)言那么高,確定不感興趣?感興趣的小伙伴們趕緊跟緊小編節(jié)奏,開始學(xué)習(xí) python 自動(dòng)化測(cè)試吧!
閱前須知:
建議初學(xué)者們先系統(tǒng)地學(xué)習(xí)完 python 編程課再進(jìn)行該框架的學(xué)習(xí):
selenium 配置可以參考這篇文章:selenium—自動(dòng)化測(cè)試?yán)鞯陌惭b配置
創(chuàng)建 webdriver 對(duì)象
使用如下代碼,創(chuàng)建一個(gè) webdriver 對(duì)象,才能進(jìn)行接下來(lái)的操作。
?driver = webdriver.Chrome()
?
從定位元素開始
selenium 有八種定位方式,分別為 id 定位,name 定位,class 定位,tag 定位,link 定位,partial link 定位,css 定位和 Xpath 定位。其中 Xpath 定位使用比較廣泛,小編接下來(lái)使用 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 對(duì)象的方法即可對(duì)瀏覽器進(jìn)行控制操作。
#控制窗口大小
driver.set_window_size(480,800)
#設(shè)置休眠,單位為秒
sleep(2)
#控制頁(yè)面后退
driver.back()
sleep(2)
#控制頁(yè)面前進(jìn)
driver.forward()
sleep(2)
#控制頁(yè)面刷新
driver.refresh()
#最大化頁(yè)面
driver.maximize_window()
鍵盤控制
選中元素后,使用 ?send_keys()
? 可以將指定的內(nèi)容鍵入到目標(biāo)元素中(一般用于輸入數(shù)據(jù))。
#元素操作-模擬輸入(定位到輸入框),通過(guò)send_keys發(fā)送輸入的數(shù)據(jù)
driver.find_element_by_xpath("http://*[@id='searched_content']").send_keys("java教程")
鼠標(biāo)控制
使用ActionChains對(duì)象可以進(jìn)行鼠標(biāo)的操作,在鼠標(biāo)操作之后要加 ?perform()
? 方法將暫存的鼠標(biāo)操作執(zhí)行出去。
# #使用right_來(lái)存放選中的元素對(duì)象
right_click =driver.find_element_by_xpath("http://*[@id='searched_content']")
#使用如下代碼,可以右擊right_對(duì)象
ActionChains(driver).context_click(right_click).perform()
move =driver.find_element_by_xpath('/html/body/div[4]/div')
#使用如下代碼,可以懸停在move對(duì)象上
ActionChains(driver).move_to_element(move).perform()
上面所有代碼合成
在以上的代碼均為非完整版,以下是完整版的代碼,包括引用 selenium 庫(kù)等代碼。
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對(duì)象
driver = webdriver.Chrome()
#使用webdriver對(duì)象訪問(wèn)w3Cschool
driver.get("http://m.hgci.cn/")
#使用Xpath方法獲取頁(yè)面上一個(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)
#控制頁(yè)面后退
driver.back()
sleep(2)
#控制頁(yè)面前進(jìn)
driver.forward()
sleep(2)
#控制頁(yè)面刷新
driver.refresh()
#最大化頁(yè)面
driver.maximize_window()
#元素操作-模擬輸入(定位到輸入框),通過(guò)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_來(lái)存放選中的元素對(duì)象
right_click =driver.find_element_by_xpath("http://*[@id='searched_content']")
#使用如下代碼,可以右擊right_對(duì)象
ActionChains(driver).context_click(right_click).perform()
move =driver.find_element_by_xpath('/html/body/div[4]/div')
#使用如下代碼,可以懸停在move對(duì)象上
ActionChains(driver).move_to_element(move).perform()
小結(jié)
掌握了以上的操作,就算是基本入門 selenium 了。由于篇幅原因,小編只能簡(jiǎn)單地挑一些比較簡(jiǎn)單的 selenium 的基礎(chǔ)操作進(jìn)行講解,后續(xù)小編還會(huì)繼續(xù)介紹該框架,希望各位看官大大多多捧場(chǎng)。