🔥《手把手教你》系列練習篇之 7-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://image.baidu.com/search/down?url=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://image.baidu.com/search/down?url=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://image.baidu.com/search/down?url=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://image.baidu.com/search/down?url=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. 小結
好了,今天的練習就到這裡,希望大家好好的練習和理解。
相關文章
- 🔥《手把手教你》系列練習篇之 5-python+ selenium 自動化測試(詳細教程)Python
- 🔥《手把手教你》系列練習篇之 6-python+ selenium 自動化測試(詳細教程)Python
- 🔥《手把手教你》系列基礎篇之 4-python+ selenium 自動化測試-xpath 使用(詳細教程)Python
- 🔥《手把手教你》系列基礎篇之 1-python+ selenium 自動化測試 - 環境搭建(詳細)Python
- 《手把手教你》系列技巧篇(九)-java+ selenium自動化測試-元素定位大法之By name(詳細教程)Java
- 《手把手教你》系列技巧篇(八)-java+ selenium自動化測試-元素定位大法之By id(詳細教程)Java
- 🔥《手把手教你》系列基礎篇之 3-python+ selenium 自動化測試 - 驅動瀏覽器和元素定位大法(詳細)Python瀏覽器
- 🔥《手把手教你》系列基礎篇之 2-python+ selenium 自動化測試 - 開啟和關閉瀏覽器(詳細)Python瀏覽器
- 《手把手教你》系列技巧篇(十九)-java+ selenium自動化測試-元素定位大法之By css下卷(詳細教程)JavaCSS
- 《手把手教你》系列技巧篇(十)-java+ selenium自動化測試-元素定位大法之By class name(詳細教程)Java
- 《手把手教你》系列技巧篇(十一)-java+ selenium自動化測試-元素定位大法之By tag name(詳細教程)Java
- 《手把手教你》系列基礎篇之(一)-java+ selenium自動化測試-環境搭建(上)(詳細教程)Java
- 《手把手教你》系列技巧篇(十八)-java+ selenium自動化測試-元素定位大法之By css中卷(詳細教程)JavaCSS
- 《手把手教你》系列技巧篇(十五)-java+ selenium自動化測試-元素定位大法之By xpath中卷(詳細教程)Java
- 《手把手教你》系列技巧篇(十三)-java+ selenium自動化測試-元素定位大法之By partial link text(詳細教程)Java
- 《手把手教你》系列基礎篇(五)-java+ selenium自動化測試- 建立首個自動化指令碼(詳細教程)Java指令碼
- 《手把手教你》系列技巧篇(五十七)-java+ selenium自動化測試-下載檔案-下篇(詳細教程)Java
- 《手把手教你》系列技巧篇(五十五)-java+ selenium自動化測試-上傳檔案-下篇(詳細教程)Java
- 《手把手教你》系列基礎篇之(三)-java+ selenium自動化測試- 啟動三大瀏覽器(上)(詳細教程)Java瀏覽器
- 《手把手教你》系列基礎篇之(二)-java+ selenium自動化測試-環境搭建(下)基於Maven(詳細教程)JavaMaven
- 《手把手教你》系列技巧篇(六十九)-java+ selenium自動化測試 - 讀取csv檔案(詳細教程)Java
- 《手把手教你》系列技巧篇(五十一)-java+ selenium自動化測試-字串操作-下篇(詳解教程)Java字串
- 《手把手教你》系列基礎篇之(四)-java+ selenium自動化測試- 啟動三大瀏覽器(下)基於Maven(詳細教程)Java瀏覽器Maven
- 《手把手教你》系列技巧篇(三十)-java+ selenium自動化測試- Actions的相關操作下篇(詳解教程)Java
- 《手把手教你》系列技巧篇(二十一)-java+ selenium自動化測試-瀏覽器視窗的控制程式碼(詳細教程)Java瀏覽器
- 《手把手教你》系列技巧篇(四十七)-java+ selenium自動化測試-判斷元素是否顯示(詳解教程)Java
- 《手把手教你》系列技巧篇(三十一)-java+ selenium自動化測試- Actions的相關操作-番外篇(詳解教程)Java
- 《手把手教你》系列技巧篇(四十六)-java+ selenium自動化測試-web頁面定位toast-下篇(詳解教程)JavaWebAST
- 《手把手教你》系列技巧篇(四十五)-java+ selenium自動化測試-web頁面定位toast-上篇(詳解教程)JavaWebAST
- 《手把手教你》系列技巧篇(三十七)-java+ selenium自動化測試-日曆時間控制元件-上篇(詳解教程)Java控制元件
- 《手把手教你》系列基礎篇(七十八)-java+ selenium自動化測試-框架設計基礎-TestNG依賴測試- 中篇(詳解教程)Java框架
- 《手把手教你》系列技巧篇(二十三)-java+ selenium自動化測試-webdriver處理瀏覽器多視窗切換下卷(詳細教程)JavaWeb瀏覽器
- 《手把手教你》系列技巧篇(三十五)-java+ selenium自動化測試-單選和多選按鈕操作-下篇(詳解教程)Java
- 《手把手教你》系列技巧篇(三十三)-java+ selenium自動化測試-單選和多選按鈕操作-上篇(詳解教程)Java
- 《手把手教你》系列技巧篇(四十四)-java+ selenium自動化測試-處理https 安全問題或者非信任站點-下篇(詳解教程)JavaHTTP
- 自動化測試之Selenium篇(一):環境搭建
- Selenium用法詳解 - - selenium自動化測試概要
- 《手把手教你》系列基礎篇(九十一)-java+ selenium自動化測試-框架設計基礎-Logback實現日誌輸出-下篇(詳解教程)Java框架