day15 webUI自动化
?一、webdriver的原理
driver = webdriver.Chrome()創(chuàng)建瀏覽器,當(dāng)做我們的服務(wù)端,代碼就是客戶端,和客戶端進(jìn)行ip綁定,基于http協(xié)議發(fā)送post請(qǐng)求
WebDriver
webdriver是按照server – client的經(jīng)典設(shè)計(jì)模式設(shè)計(jì)的。
webdriver的作用就是創(chuàng)建一個(gè)新的瀏覽器實(shí)例,也就是啟動(dòng)一個(gè)Server端。
(Starts the service and then creates new instance of chrome driver)
server端就是我們的Remote server,也就是我們通過各個(gè)不同瀏覽器所啟動(dòng)的瀏覽器實(shí)例,在我們腳本啟動(dòng)瀏覽器后,這個(gè)瀏覽器就可以稱之為我們的Remote server,它的職責(zé)就是等待client發(fā)送請(qǐng)求并做出相應(yīng)處理。
client 就是我們的測(cè)試代碼,我們測(cè)試代碼中的所有操作,比如打開瀏覽器,尋找元素,點(diǎn)擊都是以http請(qǐng)求的方式發(fā)送給被測(cè)試瀏覽器,也就是我們的Remote server,remote server接受請(qǐng)求,并執(zhí)行相應(yīng)操作,并在response中返回執(zhí)行狀態(tài)、返回值等信息(這里調(diào)用的接口是瀏覽器的源生API,而每一個(gè)瀏覽器都有自己的一套接口信息,這也就是為什么我們要安裝不同的驅(qū)動(dòng)的原因)
WebDriver工作流程
1、通過WebDriver創(chuàng)建一個(gè)瀏覽器服務(wù),remote server。
2、腳本啟動(dòng)時(shí)會(huì)在新的線程中啟動(dòng)一個(gè)瀏覽器,并綁定特定的端口,沒個(gè)瀏覽器有不同的端口段。
3、client 創(chuàng)建1個(gè)session,在該session中通過http請(qǐng)求向remote server發(fā)送restful的請(qǐng)求,remote server解析請(qǐng)求,完成相應(yīng)操作并返回response。
4、分析response,繼續(xù)執(zhí)行腳本還是結(jié)束執(zhí)行
command.py
Command類中定義了WebDriver的一些常用的常量。
remote\webdrvier.py
所有瀏覽器webdrvier的基類,其中包含了所有webdriver的api接口
remote\remote_connection.py
包含啟動(dòng)Remote WebDrvier server,執(zhí)行client請(qǐng)求,self._commands是selenium的核心請(qǐng)求參數(shù),根據(jù)對(duì)應(yīng)的Command常量,發(fā)送不同的http請(qǐng)求。
Page Object Model(POM)的優(yōu)勢(shì)
1.????POM提供了一種在UI層操作、業(yè)務(wù)流程與驗(yàn)證分離的模式,這使得測(cè)試代碼變得更加清晰和高可讀性
2.????對(duì)象庫(kù)與用例分離,使得我們更好的復(fù)用對(duì)象,甚至能與不同的工具進(jìn)行深度結(jié)合應(yīng)用
3.????可復(fù)用的頁(yè)面方法代碼會(huì)變得更加優(yōu)化
4.????更加有效的命名方式使得我們更加清晰的知道方法所操作的UI元素。例如我們要回到首頁(yè),方法名命名為: gotoHomePage(),通過方法名即可清晰的知道具體的功能實(shí)
?
二、Selenium-WebDriverApi接口詳解
18種定位方式:8種單數(shù)、8種復(fù)數(shù)、2種父類形式
(1)xpath定位方式
//*? 取整個(gè)頁(yè)面下的所有元素
?
轉(zhuǎn)載于:https://www.cnblogs.com/zzzao/p/10165736.html
總結(jié)
以上是生活随笔為你收集整理的day15 webUI自动化的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MySQL预读失效_华为云MySQL新增
- 下一篇: tgp dnf服务器文件在哪,DNFTG