?1.什么是xpath?
XPath即為XML路徑語言抬驴,它是一種用來(標準通用標記語言的子集)在 HTML\XML 文檔中查找信息的語言。
2.什么是XML?
XML 指可擴展標記語言(EXtensible Markup Language)
XML 是一種標記語言缆巧,很類似 HTML
XML 的設(shè)計宗旨是傳輸數(shù)據(jù)布持,而非顯示數(shù)據(jù)
獲取元素
表達式
nodename:獲取此節(jié)點的所有子節(jié)點
/:從根節(jié)點選取
//:從匹配選擇的當前節(jié)點選擇文檔中的節(jié)點,從而不考慮他們的位置
.:選取當前節(jié)點
..:選取當前節(jié)點的父節(jié)點
@:選取屬性
/根節(jié)點?
//title 全局模糊定位title
//head/. 定位head元素
//haad/.. 定位head元素的父元素
?//meta[@conent]?
?//meta[@conent=""]
3.什么是css選擇器陕悬?
CSS 中题暖,選擇器是一種模式,用于選擇需要添加樣式的元素捉超。計算機能夠通過css選擇器定位到相應(yīng)元素胧卤,我們在編寫自動化測試腳本的時候很多時候是在不斷地找到css選擇器。
1. 什么是框架
框架(framework)是一個框子 -- 指其約束性拼岳,也是一個架子 -- 指其支撐性枝誊,是一個基本概念上的結(jié)構(gòu),用于去解決或者處理復(fù)雜的問題惜纸。
框架是整個或部分系統(tǒng)的可重用設(shè)計叶撒,表現(xiàn)為一組抽象構(gòu)件及構(gòu)件實例間交互的方法;另一種定義認為耐版,框架是可被應(yīng)用開發(fā)者定制的應(yīng)用骨架祠够。前者是從應(yīng)用方面而后者是從目的方面給出的定義。
框架粪牲,其實就是某種應(yīng)用的半成品古瓤,就是一組組件,供你選用完成你自己的系統(tǒng)腺阳。簡單說就是使用別人搭好的舞臺落君,你來做表演。
2. 為什么使用框架
1)自己從頭實現(xiàn)太復(fù)雜
2)使用框架能夠更專注于業(yè)務(wù)邏輯亭引,加快開發(fā)速度
3)框架的使用能夠處理更多細節(jié)問題
4)使用人數(shù)多绎速,穩(wěn)定性,擴展性好
3.selenium工作原理
原理:webdriver是按照server–client的經(jīng)典設(shè)計模式設(shè)計的痛侍。
server端就是remote server朝氓,可以是任意的瀏覽器魔市。當我們的腳本啟動瀏覽器后主届,該瀏覽器就是remote server赵哲,它的職責就是等待client發(fā)送請求并做出相應(yīng);client端簡單說來就是我們的測試代碼君丁,我們測試代碼中的一些行為枫夺,比如打開瀏覽器,轉(zhuǎn)跳到特定的url等操作是以http請求的方式發(fā)送給被測試瀏覽器绘闷,也就是remote server橡庞;remote server接受請求,并執(zhí)行相應(yīng)操作印蔗,并在response中返回執(zhí)行狀態(tài)扒最、返回值等信息。
4. selenium環(huán)境搭建
1)python3.7
2)Firefox35(大于43)
3)selenium2框架
穩(wěn)定版 2.48.0 (pip install selenium==2.48.0)
4)瀏覽器驅(qū)動
注意:Firefox35(大于43)版本不需要下載驅(qū)動器华嘹,大于這個版本的需要吧趣,Chrome需要下載驅(qū)動器,下邊分別演示耙厚。
selenium對瀏覽器操作
1)庫的導(dǎo)入
fromseleniumimportwebdriver
2)創(chuàng)建瀏覽器對象
driver = webdriver.xxx()
使用dir(driver)查看方法
# 必須為大寫driver = webdriver.Firefox()driver = webdriver.Chrome()
3)瀏覽器尺寸相關(guān)操作
maximize_window()? ? 最大化get_window_size()? ? 獲取瀏覽器尺寸强挫,打印查看set_window_size()? ? 設(shè)置瀏覽器尺寸,400*400
4)瀏覽器位置相關(guān)操作
get_window_position()? ? 獲取瀏覽器位置set_window_position(x,y)? ? 設(shè)置瀏覽器位置
注意:顯示器以左上角為(0,0),所有的位置操作都是相對于顯示器左上角展開的位移操作薛躬,單位是像素俯渤。
5)瀏覽器的關(guān)閉操作
close()關(guān)閉當前標簽/窗口quit()關(guān)閉所有標簽/窗口
6)頁面請求操作
driver.get(url)請求某個url對應(yīng)的響應(yīng)refresh()刷新頁面操作back()回退到之前的頁面forward()前進到之后的頁面
6. selenium獲取斷言信息
1 什么是斷言
斷言是編程術(shù)語,表示為一些布爾表達式型宝,程序員相信在程序中的某個特定點該表達式值為真八匠,可以在任何時候啟用和禁用斷言驗證,因此可以在測試時啟用斷言而在部署時禁用斷言趴酣。
2 獲取斷言信息的操作
current_url? ? 獲取當前訪問頁面url
title? ? ? 獲取當前瀏覽器標題
page_source? ? ? 獲取網(wǎng)頁源碼
print(driver.current_url)print(driver.title)print(driver.page_source)
get_screenshot_as_png()? ? 保存圖片
data=driver.get_screenshot_as_png()withopen("a.png","wb")asf:f.write(data)
get_screenshot_as_file(file) 直接保存
driver.get_screenshot_as_file("b.png")
selenium八大元素定位
8. 元素的操作
對元素的相關(guān)操作臀叙,一般要先獲取到元素,再調(diào)用相關(guān)方法
element = driver.find_element_by_xxx(value)
1)點擊和輸入
點擊操作---------->element.click()
清空/輸入操作:
element.clear()---------------------->清空輸入框
element.send_keys(data)-------->輸入數(shù)據(jù)
9. 彈出框操作
進入到彈出框中
driver.switch_to.alert
接收警告
accept()
解散警告
dismiss()
發(fā)送文本到警告框
send_keys(data)
用法:driver.switch_to.alert.accept()