python playwright之元素定位示例詳解
定位篇
UI 自動化很多時候的苦惱都是定位不到,其實說實話我到現(xiàn)在有時候也是莫名其妙的定位到或者定位不到。好在這個框架定位方式的上限非常以及特別的高,這就像人有錢和沒錢的區(qū)別主要在于選擇權(quán)一樣,有選擇的人生才是幸福的。出門想開法拉利就開法拉利,想開拖拉機就開拖拉機。
定位的詳細介紹
1、官方是不推薦 xpath 和 css 的,原話意思是 CSS 和 XPATH 是綁定于 DOM 上的,當(dāng) DOM 結(jié)構(gòu)出現(xiàn)更改他們將失效。
2、文本內(nèi)容,輸入框內(nèi)的 placeholder,labels 等這些我們可以理解成面向業(yè)務(wù)的屬性這些反而不那么容易改變所以定位應(yīng)該盡量的去面向業(yè)務(wù)。
文本選擇器定位
下文這樣是一個基礎(chǔ)的文本定位 特點有
1、模糊匹配
2、不缺分英文的大小寫
3、如果存在多個會報錯
page.locator("text=社區(qū)").click()
也可以使用簡寫的方式,注意其中的單引號
page.locator("'Log in'").click()
比較精準的方式,點擊 id=main-nav-menu 包含的元素里文本='社區(qū)'的元素,這里使用了 text() 偽類
page.locator("#main-nav-menu :text('社區(qū)')").click()
結(jié)合 CSS 使用,僅匹配 article 元素
page.locator('article:has-text("All products")').click()
CSS 選擇器定位
點擊 button 按鈕
page.locator("button").click()
通過屬性定位,點擊屬性中存在 href="/topics"的元素
page.locator('[href="/topics" rel="external nofollow" rel="external nofollow" ]').click()
通過屬性精準定位:點擊 ID=nav-bar 元素下的 href="/topics"的元素
page.locator('#main-nav-menu [href="/topics" rel="external nofollow" rel="external nofollow" ]').click()
通過 placeholder 定位以及輸入
page.locator('[placeholder="搜索"]').fill('電子校的故事')
布局定位結(jié)合 CSS,也是我最喜歡的
page.locator("input:right-of(:text('開源項目'))").fill('電子校的故事')
非常的實用,尤其是在我們經(jīng)常測的管理系統(tǒng)里邊 dialog 里,只要左側(cè)的 label 不變~ 代碼就不用改
解釋下上邊這段代碼,大家一邊看代碼一邊把頭往顯示器的右上偏左側(cè)看下。
定位的的呢是一個 Input,一個在文本為'開源項目'右側(cè)的 input。
同理這里可以使用:right-of、:left-of、:above、:below、:near 這幾種布局定位的方式
根據(jù)元素可用
點擊一個可用的 button
page.locator("button:visible").click() page.locator("button >> visible=true").click()
繼續(xù)說說屬性
點擊一個按鈕,它的文本包含了 Click me。另這里也可使用正則表達式
page.locator("button", has_text="Click me").click()
以上就是python playwright之元素定位示例詳解的詳細內(nèi)容,更多關(guān)于python playwright元素定位的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python使用redis pool的一種單例實現(xiàn)方式
這篇文章主要介紹了Python使用redis pool的一種單例實現(xiàn)方式,結(jié)合實例形式分析了Python操作redis模塊實現(xiàn)共享同一個連接池的相關(guān)技巧,需要的朋友可以參考下2016-04-04Python如何使用pymongo連接MongoDB數(shù)據(jù)庫并進行相關(guān)操作
PyMongo是驅(qū)動程序,使python程序能夠使用Mongodb數(shù)據(jù)庫,使用python編寫而成,下面這篇文章主要給大家介紹了關(guān)于Python如何使用pymongo連接MongoDB數(shù)據(jù)庫并進行相關(guān)操作的相關(guān)資料,需要的朋友可以參考下2023-05-05Pytorch中關(guān)于BatchNorm2d的參數(shù)解釋
這篇文章主要介紹了Pytorch中關(guān)于BatchNorm2d的參數(shù)解釋,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-12-12詳解pycharm連接不上mysql數(shù)據(jù)庫的解決辦法
這篇文章主要介紹了詳解pycharm連接不上mysql數(shù)據(jù)庫的解決辦法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01