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


1. 簡介

  前面文章我們了解了如何獲取元素的text屬性值,和判斷元素是否顯示在頁面(is_displayed()方法),本文我們來學習下,判斷一個控件是否被選中狀態、獲取頁面元素的大小、組合鍵-全選文字、組合鍵-退格鍵刪除文本和鼠標右鍵等練習的內容。

2. 驗證控件是否被選中

還是以百度首頁點擊登錄后,進入登錄界面的“下次自動登錄”舉例:

由於這個"下次自動登錄"是默認被選中狀態,我們需要用腳本去判斷是否被選中。

相關代碼如下:

2.1 代碼實現:

2.2 參考代碼:

# coding=utf-8🔥

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

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

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

driver = webdriver.Chrome()
driver.maximize_window()
driver.get('https://www.baidu.com')
driver.implicitly_wait(8)

driver.find_element_by_xpath("//*[@id='u1']/a[7]").click()
time.sleep(1)
driver.find_element_by_xpath(".//*[@id='TANGRAM__PSP_10__footerULoginBtn']").click()
time.sleep(1)
try:
    driver.find_element_by_xpath(".//*[@id='TANGRAM__PSP_10__memberPass']").is_selected()
    print("Test Pass.")
except Exception as e:
    print('Test fail', format(e))

2.3 運行結果:

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

總結:

元素方法is_selected()返回是是布爾值,用來判斷單選或者多選控件是否被選中,或者下拉選擇菜單是否選擇一個默認的option,都可以通過這個方法去判斷。

3. 獲取頁面元素大小

本文介紹如何通過Selenium方法去獲取頁面元素的大小。這個場景是可能在需要測試的,例如在前端測試過程中,需要去測試某一個控件是否和設計大小保持一致。

這里用百度首頁的“百度一下”這個按鈕舉例,打印出這個按鈕的大小。

相關腳本代碼如下:

3.1 代碼實現:

3.2 參考代碼:

# coding=utf-8🔥

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

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

# 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(1)
search_btn = driver.find_element_by_id('su')
print (search_btn.size)

3.3 運行結果:

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

4. 組合鍵-全選文字

本文開始介紹Selenium中Keys模塊下的一些組合,或快捷鍵的使用。前面的一篇文章,介紹了如何新開一個tab,也是用到這塊的知識。

本文介紹全選當前頁面文字,快捷鍵是 Ctrl+a,主要還是用send_keys()方法輸入組合鍵,這里用百度首頁舉例。

相關腳本代碼如下:

4.1 代碼實現:

4.2 參考代碼:

# coding=utf-8🔥

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

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

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


driver = webdriver.Chrome()
driver.maximize_window()
driver.get('https://www.baidu.com')

element = driver.find_element_by_tag_name('body')
element.send_keys(Keys.CONTROL + 'a')

4.3 運行結果:

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

 4.4 百度首頁如下:

百度首頁相當於我們按了鍵盤的組合鍵(Ctrl + A)

5. 組合鍵-退格鍵刪除文字

前面一篇文章介紹了,常規清除文本輸入框字符的方法clear(), 本文介紹

相關腳本代碼如下,這里用百度首頁搜索輸入框舉例:

5.1 代碼實現:

 

5.2 參考代碼:

 

# coding=utf-8🔥

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

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

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


driver = webdriver.Chrome()
driver.maximize_window()
driver.get('https://www.baidu.com')

element = driver.find_element_by_id('kw')
element.send_keys("Selenium automation")
time.sleep(1)
element.send_keys(Keys.CONTROL+'a')
element.send_keys(Keys.BACKSPACE)

5.3 運行結果:

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

6. 鼠標右鍵

本文介紹如何使用Selenium中右鍵方法來操作網頁元素。網頁上有些元素是支持右鍵來觸發新的菜單,這里找一個百度首頁,百度logo的右鍵,查看圖片動作來模擬這個場景。

問題拆分:

1. 打開百度首頁,找到logo,右鍵鼠標

2. 移動到菜單,查看圖像,然后點擊

核心問題,如何右鍵操作,然后是如何選擇查看圖像這個菜單。在Selenium中,有一個ActionChains模塊支持,右鍵,鼠標懸停,拖拽,雙擊等動作。我們可以通過鍵盤向下箭頭來選擇查看圖像這個菜單,然后點擊就可以達到目的。

相關腳本代碼如下:

6.1 代碼實現:

6.2 參考代碼:

# coding=utf-8🔥

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

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

# 3.導入模塊
import time
from selenium import webdriver
from selenium.webdriver import ActionChains
from selenium.webdriver.common.keys import Keys


driver = webdriver.Chrome()
driver.maximize_window()
driver.get('https://www.baidu.com')
time.sleep(2)

element = driver.find_element_by_xpath("//*[@id='lg']/img")
actionChains = ActionChains(driver)
actionChains.context_click(element).send_keys(Keys.ARROW_DOWN).send_keys(Keys.ENTER).perform()
#actionChains.context_click(element).send_keys('i').perform()

6.3 運行結果:

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

注意:
ActionChains下相關方法在當前的firefox不工作,這個是一個已知的bug。

7. 小結

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

 

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


免責聲明!

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



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