1.簡介
有些網站爲了節省流量和資源,提高加載效率,採用的是動態加載(懶加載)的,也就是當拖動頁面右側滾動條後會自動加載網頁下面的內容,不拖動就不會加載的或者通過鼠標滾輪操作。
2.wheel模擬鼠標滾動
wheel模擬鼠標滾動,就是通過調度一個wheel事件。(滾輪事件如果不處理可能會導致滾動,該方法不會等待滾動結束才返回。)語法如下:
def wheel(self, delta_x: float, delta_y: float) -> None: """Mouse.wheel Dispatches a `wheel` event. **NOTE** Wheel events may cause scrolling if they are not handled, and this method does not wait for the scrolling to finish before returning. Parameters ---------- delta_x : float Pixels to scroll horizontally. delta_y : float Pixels to scroll vertically. """
2.1參數詳解
參數 |
類型 |
釋義 |
---|---|---|
delta_x |
float |
要水平滾動的像素 |
delta_y |
float |
要垂直滾動的像素 |
2.2使用方法
mouse.wheel(delta_x, delta_y)
3.項目實戰
宏哥這裏就用菜鳥教程的網站進行講解和演示:一邊滾動一邊加載網頁內容。
3.1代碼設計
3.2參考代碼
# coding=utf-8🔥 # 1.先設置編碼,utf-8可支持中英文,如上,一般放在第一行 # 2.註釋:包括記錄創建時間,創建人,項目名稱。 ''' Created on 2023-12-16 @author: 北京-宏哥 公衆號:北京宏哥 Project: 《最新出爐》系列入門篇-Python+Playwright自動化測試-45-鼠標滾輪操作 ''' # 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://www.runoob.com/") page.wait_for_timeout(1000) for i in range(50): page.mouse.wheel(0, 100) page.wait_for_timeout(500) #page.pause() context.close() browser.close() with sync_playwright() as playwright: run(playwright)
3.3運行代碼
1.運行代碼,右鍵Run'Test',控制檯輸出,如下圖所示:
2.運行代碼後電腦端的瀏覽器的動作。如下圖所示:
4.小結
好了,今天時間也不早了,宏哥就講解和分享到這裏,感謝您耐心的閱讀,希望對您有所幫助。