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