亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python寫UI自動化之playwright(點擊操作)詳解

 更新時間:2025年02月15日 11:12:35   作者:電商人學python  
這篇文章主要介紹了Playwright庫中click()方法的參數(shù)及其使用場景,包括選擇器、修飾鍵、點擊位置、鼠標按鈕、點擊次數(shù)、延遲、超時、強制點擊、試點擊和不等待導航等選項,文中通過代碼介紹的非常詳細,需要的朋友可以參考下

0. selector (必需)

類型: string

描述: CSS 選擇器或 XPath 表達式,用于定位要點擊的元素。

是必須提供的參數(shù),用于確定要點擊的元素。

1. modifiers(可選)

傳入一個列表,其中是鍵盤的按鍵操作,比如"Ctrl","Alt","Shift","win鍵"等

類型: Array<string>
描述: 一個字符串數(shù)組,用于指定要按下的修飾鍵。可用的修飾鍵包括 "Shift", "Control", "Alt", "Meta"(代表 Command 鍵或 Windows 鍵)。
使用場景
模擬組合鍵點擊:如果需要模擬用戶同時按下 Shift 或 Control 鍵并點擊元素,可以使用 modifiers 參數(shù)。例如,模擬用戶按下 Ctrl 鍵并點擊鏈接以在新標簽頁中打開鏈接。
模擬特殊操作:在某些情況下,需要模擬特殊的鍵盤操作。例如,在表格中按下 Ctrl 鍵并點擊單元格以選擇多個項。

from playwright.sync_api import Page
def test_pw_click(page: Page):
    page.goto(url='https://www.baidu.com')
    page.locator('//input[@name="wd"]').fill("日歷")
    page.get_by_text('百度一下').click(modifiers=["Control"]) #Control、Alt、Shift、Meta

2. position(可選)

傳入一個字典,{"x":10, "y": 20 },表示點擊位置距離元素左上角的偏移量??梢杂胋ounding_box()方法先查看這個元素的width和height,再確定自己點擊位置要偏移多少,偏移量不能超過這個元素的寬高范圍。當被操作元素被遮罩時,雖然playwright會自動尋找可點擊位置,但是這樣顯示指定點擊位置會更精確一些

類型: { x: number, y: number }
描述: 指定相對于元素左上角的點擊位置。x 和 y 分別表示水平和垂直偏移量。
使用場景: 需要在元素內部的特定位置點擊時,可以使用 position 參數(shù)。這對于需要點擊元素內的某個圖標或按鈕的情況很有用。例如,如果有一個帶有下拉箭頭的按鈕,可能需要點擊箭頭而不是整個按鈕區(qū)域。

from playwright.sync_api import Page
def test_pw_click(page: Page):
    page.goto(url='https://www.baidu.com')
    page.locator('//input[@name="wd"]').fill("翻譯")
    page.get_by_text('百度一下').click()

     # 獲取元素位置
    page.get_by_text('百度首頁').bounding_box()
     # 返回示例:{'x': 1082, 'y': 24, 'width': 52, 'height': 24}
     # 表示這個元素在整個界面位置,以及元素本身的寬和高范圍大小

     # 點擊元素的特定位置
    page.click("#my-button", position={"x": 10, "y": 10})

3. button(可選)

可以模擬左鍵右鍵中間鍵點擊

類型: "left" | "right" | "middle"
描述: 指定要使用的鼠標按鈕。默認值為 "left"。
使用場景: 需要模擬右鍵點擊或其他類型的鼠標按鈕點擊時使用。例如模擬右鍵點擊來打開上下文菜單。

from playwright.sync_api import Page
def test_pw_click(page: Page):
    page.goto(url='https://www.baidu.com')
    page.locator('//input[@name="wd"]').fill("翻譯")
    page.get_by_text('百度一下').click()
    
    page.get_by_text('百度首頁').click(button="right") #left左鍵 right右鍵 middle中鍵

4. click_count(可選)

傳點擊次數(shù),和delay參數(shù)結合使用

類型: number
描述: 指定點擊次數(shù)。默認為 1,可以設置為 2 來模擬雙擊。
使用場景: 需要模擬雙擊或其他次數(shù)的點擊時使用。例如,雙擊文件列表中的文件來打開它。

page.locator('//input[@id="su"]').click(click_count=3,delay=3_000)

雙擊還有另一個方便的方法dblclick(),括號中的參數(shù)跟click()類似:

page.locator('//input[@id="su"]').dblclick()

5. delay

類型: number
描述: 設置兩次點擊之間的延遲時間(毫秒)。默認為 0。
使用場景: 需要模擬用戶點擊時的自然延遲,比如在雙擊之間加入短暫的停頓,以模仿真實的用戶行為。

6. timeout(可選)

傳入超時時間

類型: number
描述: 設置最大等待時間(毫秒),超過此時間后將拋出超時錯誤。默認為 30000 毫秒(30 秒)。
使用場景: 當你需要限制等待元素變得可點擊的時間。例如,在等待元素出現(xiàn)時,你可能不想等待太長時間。

page.get_by_text('#要點擊的元素').click(timeout=1_000) #超時時間,默認30s

7. force=True(可選)

表示playwright auto-waiting機制中,當設置 force=True 時,即使元素被其他元素遮擋,Playwright 也會嘗試強制點擊該元素。這意味著即使有對話框或其他元素遮擋了目標元素,Playwright 也會嘗試直接點擊目標元素。

類型: bool
描述: 如果為 true,則強制點擊元素,即使它被遮擋。默認為 false。
使用場景: 當元素被其他元素遮擋時,仍然需要點擊它。例如,如果一個按鈕被一個模態(tài)對話框遮擋,可能需要強制點擊該按鈕。

page.get_by_text('#需要點擊的元素').click(force=True)

8. trial=True(可選)

表示只進行playwright auto-waiting的等待而不進行click操作

類型: bool
描述: 如果為 true,則不執(zhí)行實際的點擊操作,而是僅嘗試查找元素并檢查是否可以點擊。默認為 false。
使用場景: 需要驗證元素是否可以點擊,但不執(zhí)行實際的點擊操作。例如,在測試準備階段,你可能需要檢查頁面上的所有按鈕是否可點擊。

page.get_by_text('#要點擊的元素').click(trial=True) #點擊前檢查元素

9. no_wait_after(可選)

表示,一般情況下,如果click操作觸發(fā)了一個導航事件,那么pw會等待導航結束,但是這樣可能導致click一直未結束而失敗。這個就是為了避免這種情況發(fā)生。

類型: bool
描述: 如果為 true,則點擊后不等待頁面導航或資源加載完成。默認為 false。
使用場景: 當點擊操作不會導致頁面重新加載,而只是觸發(fā)一些異步操作(如 AJAX 請求)時。例如,如果點擊按鈕只是更新頁面的一部分內容而不刷新整個頁面。

page.get_by_text('#要點擊的元素').click(no_wait_after=True) #點擊后不等待頁面加載

總結一下,playwright的click操作有這么幾步:

1.Auto-waiting機制,自動等待元素到可以被成功點擊,除非設置了force=True

2.把元素滑動到可以被點擊的地方

3.合并modifiers中的按鍵進行點擊操作,除非設置了trial=True

4.等待可能的導航結束,除非設置了no_wait_after=True

注意事項

在使用 click 方法時,確保元素是可見的并且在頁面上是可交互的。
使用 position 參數(shù)時,請確保指定的坐標位于元素的有效范圍內。
使用 noWaitAfter 參數(shù)時要注意,如果不等待頁面加載完成,可能會影響后續(xù)的測試步驟。
使用 timeout 參數(shù)時要合理設置,過短的超時時間可能導致測試失敗,過長則可能降低測試效率。

熟悉click()方法的這些參數(shù),我們可以根據(jù)需求精確地控制點擊行為,使自動化測試更加可靠和高效。

總結

到此這篇關于Python寫UI自動化之playwright的文章就介紹到這了,更多相關Python自動化playwright點擊操作內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • python實現(xiàn)學員管理系統(tǒng)(面向對象版)

    python實現(xiàn)學員管理系統(tǒng)(面向對象版)

    這篇文章主要為大家詳細介紹了python面向對象版實現(xiàn)學員管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • Python實現(xiàn)Tracert追蹤TTL值的方法詳解

    Python實現(xiàn)Tracert追蹤TTL值的方法詳解

    Tracert命令跟蹤路由原理是IP路由每經過一個路由節(jié)點TTL值會減一。本文我們將通過scapy構造一個路由追蹤工具并實現(xiàn)一次追蹤,感興趣的小伙伴可以了解一下
    2022-10-10
  • MacOS(M1芯片?arm架構)下安裝tensorflow的詳細過程

    MacOS(M1芯片?arm架構)下安裝tensorflow的詳細過程

    這篇文章主要介紹了MacOS(M1芯片?arm架構)下如何安裝tensorflow,本節(jié)使用的版本是tensorflow2.4?python3.8,因此并未安裝加速插件,本文結合實例代碼詳細講解,需要的朋友可以參考下
    2023-02-02
  • CoordConv實現(xiàn)卷積加上坐標實例詳解

    CoordConv實現(xiàn)卷積加上坐標實例詳解

    這篇文章主要介紹了CoordConv實現(xiàn)卷積加上坐標實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-03-03
  • mac安裝python3后使用pip和pip3的區(qū)別說明

    mac安裝python3后使用pip和pip3的區(qū)別說明

    這篇文章主要介紹了mac安裝python3后使用pip和pip3的區(qū)別說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • Python調用C++程序的方法詳解

    Python調用C++程序的方法詳解

    這篇文章主要介紹了Python調用C++程序的方法,文中通過示例代碼介紹的詳細,相信對大家具有一定的參考借鑒價值,需要的朋友們下面來一起看看吧。
    2017-01-01
  • python uuid生成唯一id或str的最簡單案例

    python uuid生成唯一id或str的最簡單案例

    這篇文章主要介紹了python uuid生成唯一id或str的最簡單案例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • Python常問的100個面試問題匯總(上篇)

    Python常問的100個面試問題匯總(上篇)

    這篇文章主要介紹了Python常問的100個面試問題匯總(上篇),文章內容詳細,簡單易懂,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2023-01-01
  • Python實現(xiàn)一個數(shù)組除以一個數(shù)的例子

    Python實現(xiàn)一個數(shù)組除以一個數(shù)的例子

    今天小編就為大家分享一篇Python實現(xiàn)一個數(shù)組除以一個數(shù)的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • 基于Python實現(xiàn)2種反轉鏈表方法代碼實例

    基于Python實現(xiàn)2種反轉鏈表方法代碼實例

    這篇文章主要介紹了基于Python實現(xiàn)2種反轉鏈表方法代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-07-07

最新評論