1. 程式人生 > 其它 >測試學習筆記(P123-P148教程from凡雲教育)之UI自動化

測試學習筆記(P123-P148教程from凡雲教育)之UI自動化

P126

自動化測試用例設計原則:
1.自動化來覆蓋需要重複的基本功能、基本業務流以及正向路徑操作,避免複雜的異常測試、複雜業務流程;
2.儘量保持用力之間的獨立性,最好不要依賴關係;
3.如果自動化測試進行了資料修改,測試執行完成之後儘量還原,避免對其他用例的影響;
4.每個自動化測試用例只驗證一個功能點。

P127-129

Selenium 特點及配置安裝、工作原理、簡單示例
Location
Operation
Verification
Expect

P130
Webdriver 常用瀏覽器操作
開啟 driver.get(url) 本地檔案也可以,url需要寫協議
關閉:driver.quit()結束程序或driver.close()僅關閉當前視窗
設定視窗大小:diver.set_window_size(200,500)
最大化視窗:driver.maximize_window()
獲取網頁原始碼:driver.page_source
獲取視窗名稱:driver.name
重新整理頁面:driver.refresh()
獲取頁面標題:driver.title
獲取當前頁面url:driver.current_url
獲取當前頁面截圖:driver.get_screenshot_as_file(path)

P131-134
html基礎知識
Head區域頭部不可見
容器型元素:div form table
頁面元素:a\img\input\select\checkbox\radio\textarea\submit……
Js:定義元素行為

P135-143
元素定位
find_element()
find_elements()[]
Class用於寫樣式,當元素的class有多個值時,不建議用class name定位
tag name 定位,用於查詢同類型標籤
Link text/partial link text,通過a標籤的文字來定位連結
Console中可用用$x(“”)除錯xptah
Console中可用用$$x(“”)除錯xptah
css選擇器定位:
elements = driver.find_element(‘css selector’, ‘class’)
Id用#,class直接寫,父子關係用大於號,子孫關係用空格

P144

find_element 和 find_elements 區別
返回:第一個元素 列表形式返回所有元素
無元素返回:拋異常 空列表

P145

Webdriver常見元素操作
Clear
Send_keys
Click
Text
Get_attribute(name)
Is_displayed 返回布林值,對元素屬性是否可見做判斷

P146-147

等待操作

強制等待:
import time
time.sleep(3)

隱式等待,全域性有效,等待的時元素出現(存在,加載出該元素)
driver.implicitly_wait(3)

顯示等待
多個等待同時存在,以等待時間最長的為準?
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC (設定等待條件)
寫法
WebDriverWait(driver,10).until(EC.element_to_be_clickable((‘id’,’btn3’))

常見EC方法
title_is() 標籤標題是否等於
title_contains() 標籤標題是否包含
presence_of_element_located(locator) 判斷某個元素是否被加入到dom中,但不等於該元素可見
visibility_of_element_located(locator) 判斷某個元素是否可見,可見代表元素非隱藏,並且元素的寬、高都不等於0
invisibility_of_element_located(locator) 判斷某個元素是否不可見
element_to_be_clickable(locator) 判斷某個元素是否可見並且是enable(一個屬性)的,這樣才能點選
text_to_be_present_in_element(locator): 判斷某個元素中的text是否包含了預期的字串

P148

常見元素操作

組合按鍵寫法:
from selenium.webdriver.common.keys import Keys
send_keys(Keys.SHIFT, “fanyun”)
send_keys(Keys.CONTROL+’a’)

下拉框:
from selenium.webdriver.support.ui import Select
Select(driver.find_element(‘tag_name’,’select’)).select_by_visible_text(‘成都’)