很多想要做軟件測試的小伙伴們可能會聽到別的小伙伴安利一個強大的框架——selenium,然后又因為怕框架配置麻煩而遲遲未能開始學習?,F(xiàn)在,python selenium 教程來了!使用相對易學易配置的 python 語言進行開發(fā),學習成本低,對編程的要求也沒有其他語言那么高,確定不感興趣?感興趣的小伙伴們趕緊跟緊小編節(jié)奏,開始學習 python 自動化測試吧!
閱前須知:
建議初學者們先系統(tǒng)地學習完 python 編程課再進行該框架的學習:
selenium 配置可以參考這篇文章:selenium—自動化測試利器的安裝配置
創(chuàng)建 webdriver 對象
使用如下代碼,創(chuàng)建一個 webdriver 對象,才能進行接下來的操作。
?driver = webdriver.Chrome()
?
從定位元素開始
selenium 有八種定位方式,分別為 id 定位,name 定位,class 定位,tag 定位,link 定位,partial link 定位,css 定位和 Xpath 定位。其中 Xpath 定位使用比較廣泛,小編接下來使用 Xpath 定位進行演示:
?driver.find_element_by_xpath("http://*[@id='nav']/div/ul/li[2]").click()
?
driver 下面有 ??find_element_by_xpath
?? 方法可以獲取一個 html 元素,獲取到這個元素后可以使用 ?click()
? 方法點擊這個元素。??find_element_by_xpath?
? 方法里面可以進行 Xpath 的選擇。關于 Xpath 的教程可以參考:Xpath教程
瀏覽器控制
瀏覽器控制直接調用 driver 對象的方法即可對瀏覽器進行控制操作。
#控制窗口大小
driver.set_window_size(480,800)
#設置休眠,單位為秒
sleep(2)
#控制頁面后退
driver.back()
sleep(2)
#控制頁面前進
driver.forward()
sleep(2)
#控制頁面刷新
driver.refresh()
#最大化頁面
driver.maximize_window()
鍵盤控制
選中元素后,使用 ?send_keys()
? 可以將指定的內(nèi)容鍵入到目標元素中(一般用于輸入數(shù)據(jù))。
#元素操作-模擬輸入(定位到輸入框),通過send_keys發(fā)送輸入的數(shù)據(jù)
driver.find_element_by_xpath("http://*[@id='searched_content']").send_keys("java教程")
鼠標控制
使用ActionChains對象可以進行鼠標的操作,在鼠標操作之后要加 ?perform()
? 方法將暫存的鼠標操作執(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要導入selenium包
from selenium.webdriver.common.action_chains import ActionChains
#使用鼠標點擊事件要導入ActionChains
from time import sleep
#使用sleep要導入time包
#創(chuàng)建一個webdriver對象
driver = webdriver.Chrome()
#使用webdriver對象訪問w3Cschool
driver.get("http://o2fo.com/")
#使用Xpath方法獲取頁面上一個元素的定位,使用click方法為點擊這個元素
driver.find_element_by_xpath("http://*[@id='nav']/div/ul/li[2]").click()
#控制窗口大小
driver.set_window_size(480,800)
#設置休眠,單位為秒
sleep(2)
#控制頁面后退
driver.back()
sleep(2)
#控制頁面前進
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()
小結
掌握了以上的操作,就算是基本入門 selenium 了。由于篇幅原因,小編只能簡單地挑一些比較簡單的 selenium 的基礎操作進行講解,后續(xù)小編還會繼續(xù)介紹該框架,希望各位看官大大多多捧場。