《手把手教你》系列練習篇之3-python+ selenium自動化測試(詳細教程)


1.  簡介

  前面介紹了,XPath, id , class , link text, partial link text, tag name, name 七大元素定位方法,本文介紹webdriver支持的最后一個方法:by_css。css和XPath類似,也需要掌握一些語法,才能寫出正確的,完整的css選擇表達式。相關w3c介紹,請點擊這里。

2.  by_css定位元素

  以百度首頁的“百度一下”按鈕為例,我們通過by_css來定位到這個按鈕。如圖

2.1  代碼實現:

2.2  參考代碼:

# coding=utf-8🔥

# 1.先設置編碼,utf-8可支持中英文,如上,一般放在第一行

# 2.注釋:包括記錄創建時間,創建人,項目名稱。
'''
Created on 2019-11-29
@author: 北京-宏哥   QQ交流群:705269076
Project: python+ selenium自動化測試練習篇3
'''

# 3.導入模塊
from selenium import webdriver

driver = webdriver.Chrome()
driver.maximize_window()
driver.implicitly_wait(6)

driver.get("https://www.baidu.com")
try:
    driver.find_element_by_css_selector("#su") # 找 百度一下 這個按鈕
    print ('test pass: element found by css selector')
except Exception as e:
    print ("Exception found", format(e))

driver.quit()

2.3  運行結果:

  運行代碼后,控制台打印如下圖的結果

  總結:如果一開始沒有接觸css,感覺寫css表達式有點困難,沒關系。看個人喜好和適合哪個,例如,如果你掌握好了XPath的寫法,那么就可以不去管css,畢竟大部分xpath表達式都能夠定位到元素。有些人可能說了,css要比xpath表達式查找元素的速度要

快,這個你不要去擔心,對計算機來講,你根本無法區分哪個更快,也不是自動化測試考慮的重點。

建議:一定要掌握好XPath或者css來定位元素,其他的幾種了解就可以。畢竟在實際項目開發腳本階段,很多元素是無法通過id ,css, text, name來直接定位這個網頁元素,更多的還是根據XPath或者css表達式去定位。

3. 清除文本方法

  在前面的文章中,我們或多或少的用到了輸入字符和點擊按鈕這樣的操作。用send_keys()來輸入字符串到文本輸入框這樣的頁面元素,用click()來點擊頁面上支持點擊的元素。有時候,我們需要清除一個文本輸入框內的文字,然后重新輸入新的字符串,那邊清

除這個方法如何實現呢。

調用webdriever中clear()方法:

相關代碼如下,為了演示測試效果,我們運行完腳本,不關閉瀏覽器:

3.1  代碼實現:

3.2  參考代碼:

# coding=utf-8🔥

# 1.先設置編碼,utf-8可支持中英文,如上,一般放在第一行

# 2.注釋:包括記錄創建時間,創建人,項目名稱。
'''
Created on 2019-12-02
@author: 北京-宏哥   QQ交流群:705269076
Project: python+ selenium自動化測試練習篇3
'''

# 3.導入模塊
from selenium import webdriver

driver = webdriver.Chrome()
driver.maximize_window()
driver.implicitly_wait(6)

driver.get("https://www.baidu.com")

driver.find_element_by_id("kw").send_keys("Selenium")
try:
    driver.find_element_by_id("kw").clear() # 調用clear()方法去清除
    print ('test pass: clean successful')
except Exception as e:
    print ("Exception found", format(e))

3.3  運行結果:

  運行代碼后,控制台打印如下圖的結果

4.  調用webdriver中刷新頁面的方法

本小節宏哥給小伙伴們或者童鞋們來介紹如何調用webdriver中刷新頁面的方法。其實前邊已經說過,這個只不過是作為練習我們再來鞏固一下而已。

相關腳本代碼如下:

4.1 代碼實現:

4.2 參考代碼:

# coding=utf-8🔥

# 1.先設置編碼,utf-8可支持中英文,如上,一般放在第一行

# 2.注釋:包括記錄創建時間,創建人,項目名稱。
'''
Created on 2019-12-02
@author: 北京-宏哥   QQ交流群:705269076
Project: python+ selenium自動化測試練習篇3
'''

# 3.導入模塊
import time
from selenium import webdriver

driver = webdriver.Chrome()
driver.maximize_window()
driver.implicitly_wait(6)

driver.get("https://www.baidu.com")
time.sleep(2)
try:
    driver.refresh() # 刷新方法 refresh
    print ('test pass: refresh successful')
except Exception as e:
    print ("Exception found", format(e))
driver.quit()

4.3 運行結果:

  運行代碼后,控制台打印如下圖的結果

5.  瀏覽器前進后退

  本小節來介紹上如何,利用webdriver中的方法來演示瀏覽器中地址欄旁邊的前進和后退功能。其實這個前邊也已經說過,這個只不過是作為練習我們再來鞏固一下而已。

相關腳本代碼如下:

5.1 代碼實現:

5.2 參考代碼:

# coding=utf-8🔥

# 1.先設置編碼,utf-8可支持中英文,如上,一般放在第一行

# 2.注釋:包括記錄創建時間,創建人,項目名稱。
'''
Created on 2019-12-02
@author: 北京-宏哥   QQ交流群:705269076
Project: python+ selenium自動化測試練習篇3
'''

# 3.導入模塊
import time
from selenium import webdriver

driver = webdriver.Chrome()
driver.maximize_window()
driver.implicitly_wait(6)

driver.get("https://www.baidu.com")
time.sleep(2)
elem_news = driver.find_element_by_link_text("新聞")
elem_news.click() # 點擊進入到百度新聞
time.sleep(2)
driver.back() # 從百度新聞后退到百度首頁
print("從百度新聞后退到百度首頁")
time.sleep(2)
driver.forward() # 百度首頁前進到百度新聞
print("百度首頁前進到百度新聞")
time.sleep(2)
driver.quit()

5.3 運行結果:

  運行代碼后,控制台打印如下圖的結果

6. webdriver方法獲取瀏覽器的版本號

  本小節介紹,如何通過webdriver方法獲取瀏覽器的版本號。看起來這個功能很雞肋,不管怎么說,還是學習下,特別是在發送自動化測試報告的時候,還是可以通過這個方法來告訴別人,執行過的腳本是通過什么瀏覽器,什么版本跑的吧。

相關腳本代碼如下:

6.1 代碼實現:

6.2 參考代碼:

# coding=utf-8🔥

# 1.先設置編碼,utf-8可支持中英文,如上,一般放在第一行

# 2.注釋:包括記錄創建時間,創建人,項目名稱。
'''
Created on 2019-12-02
@author: 北京-宏哥   QQ交流群:705269076
Project: python+ selenium自動化測試練習篇3
'''

# 3.導入模塊
import time
from selenium import webdriver


driver = webdriver.Chrome()
driver.maximize_window()
driver.implicitly_wait(6)

driver.get("http://www.baidu.com/")
time.sleep(1)
print(driver.capabilities['version']) # 打印瀏覽器version的值
driver.quit()

6.3 運行結果:

  運行代碼后,控制台打印如下圖的結果

6.4 查看瀏覽器版本

  右上角——>幫助——>關於Google Chrome,點擊后如下圖:查看版本號一致。

7. 小結

   好了,今天的練習就到這里,希望大家好好的練習和理解。 

 

您的肯定就是我進步的動力。如果你感覺還不錯,就請鼓勵一下吧!記得點波 推薦 不要忘記哦!!!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM