《最新出爐》系列入門篇-Python+Playwright自動化測試-45-鼠標操作-下篇

1.簡介

鼠標爲我們使用電腦提供了很多方便,我們看到的東西就可以將鼠標移動過去進行點擊就可以打開或者訪問內容,當頁面內容過長時,我們也可以使用鼠標滾輪來實現對整個頁面內容的查看,其實playwright也有鼠標操作的方法。上一篇文章中已經講解過鼠標的部分操作了,今天宏哥在這裏將剩下的其他操作進行一個詳細地介紹和講解。

2.鼠標操作語法

鼠標操作介紹官方API的文檔地址:https://playwright.dev/docs/api/class-mouse

Mouse鼠標操作是基於page對象去調用。常用的鼠標操作有單擊,雙擊,滾輪,按住,移動,釋放。

2.1官方示例

1.使用` page.mouse` 畫 一個100x100的正方形。語法如下:

# Using ‘page.mouse’ to trace a 100x100 square.
# 鼠標移動到(0,0)座標
await page.mouse.move(0, 0);
# 按下鼠標
await page.mouse.down();
# 鼠標縱座標向下移動100像素
await page.mouse.move(0, 100);
# 鼠標橫座標向右移動100像素
await page.mouse.move(100, 100);
# 鼠標縱座標向上移動100像素
await page.mouse.move(100, 0);
# 鼠標縱座標向左移動100像素
await page.mouse.move(0, 0);
# 釋放鼠標
await page.mouse.up();

2.鼠標運行軌跡,如下圖所示:

3.組合拳

mouse.move()、mouse.down()、mouse.up()三個一般都是組合出現在代碼裏的一套組合拳。

3.1down模擬鼠標按下

down模擬鼠標按下,主要是通過調度一個mousedown事件。

3.1.1參數詳解

「參數」

參數

類型

釋義

button

list["left", "middle", "right"]

左中右可選

click_count

int

默認值爲1,含義參考:https://developer.mozilla.org/en-US/docs/Web/API/UIEvent/detail

3.1.2使用方法
mouse.down()
mouse.down(**kwargs)

3.2.move模擬鼠標移動

move模擬鼠標移動,主要是通過調度一個mousemove事件。語法如下:

def move(self, x: float, y: float, *, steps: typing.Optional[int] = None) -> None:
        """Mouse.move

        Dispatches a `mousemove` event.

        Parameters
        ----------
        x : float
        y : float
        steps : Union[int, None]
            Defaults to 1. Sends intermediate `mousemove` events.
        """
3.2.1參數詳解

參數

類型

釋義

x

float

x座標

y

float

y座標

steps

 
3.2.2使用方法
mouse.move(x, y)
mouse.move(x, y, **kwargs)

3.3up模擬鼠標釋放

up模擬鼠標釋放,主要是通過調度一個mouseup事件。

3.2.1參數詳解

參數

類型

釋義

button

list["left", "middle", "right"]

左中右可選

click_count

int

默認值爲1,含義參考:https://developer.mozilla.org/en-US/docs/Web/API/UIEvent/detail

3.2.2使用方法
mouse.up()
mouse.up(**kwargs)

4.wheel模擬鼠標滾動

wheel模擬鼠標滾動,是通過調度一個wheel事件。(滾輪事件如果不處理可能會導致滾動,該方法不會等待滾動結束才返回。)

4.1參數詳解

參數

類型

釋義

delta_x

float

要水平滾動的像素

delta_y

float

要垂直滾動的像素

4.2使用方法

mouse.wheel(delta_x, delta_y)

5.牛刀小試

5.1測試網址

https://cps-check.com/cn/mouse-buttons-test

  • 未按鼠標時,不會顯示其他顏色
  • 長按鼠標左鍵時,頁面會顯示紅色的左鍵
  • 按下鼠標左鍵鬆開時,頁面會顯示粉紅色的左鍵

5.1代碼設計

5.2參考代碼

# coding=utf-8🔥

# 1.先設置編碼,utf-8可支持中英文,如上,一般放在第一行

# 2.註釋:包括記錄創建時間,創建人,項目名稱。
'''
Created on 2023-12-12
@author: 北京-宏哥
公衆號:北京宏哥
Project: 《最新出爐》系列入門篇-Python+Playwright自動化測試-44-鼠標操作-上篇
'''

# 3.導入模塊
from playwright.sync_api import Playwright, sync_playwright, expect

def run(playwright: Playwright) -> None:

    browser = playwright.chromium.launch(headless=False)
    context = browser.new_context()
    page = context.new_page()
    page.goto("https://cps-check.com/cn/mouse-buttons-test")
    page.wait_for_timeout(1000)
    #將鼠標移到測試框內
    page.mouse.move(650,300)
    #按下左鍵
    page.mouse.down()
    page.wait_for_timeout(20000)
    #釋放
    page.mouse.up()
    page.wait_for_timeout(2000)
    #page.pause()
    context.close()
    browser.close()

with sync_playwright() as playwright:
    run(playwright)

5.3運行代碼

1.運行代碼,右鍵Run'Test',控制檯輸出,如下圖所示:

2.運行代碼後電腦端的瀏覽器的動作(圖片中的鼠標左鍵先顯示紅色然後顯示粉色)。如下圖所示:

6.wheel模擬鼠標滾動

wheel模擬鼠標滾動,就是通過調度一個wheel事件。(滾輪事件如果不處理可能會導致滾動,該方法不會等待滾動結束才返回。)

6.1參數詳解

參數

類型

釋義

delta_x

float

要水平滾動的像素

delta_y

float

要垂直滾動的像素

6.2使用方法

mouse.wheel(delta_x, delta_y)

7.小結

 到此,鼠標的一些常用的操作基本上都已經講解和分享完成,當然了可能還有其他操作,這個等我遇到的時候,再具體問題具體分析。好了,今天時間也不早了,宏哥就講解和分享到這裏,感謝您耐心的閱讀,希望對您有所幫助。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章