《最新出爐》系列初窺篇-Python+Playwright自動化測試-17-處理滑鼠懸停

宏哥發表於2023-09-28

1.簡介

有些測試場景或者事件,playwright根本就沒有直接提供方法去操作,而且也不可能把各種測試場景都全面覆蓋提供方法去操作。比如:就像滑鼠懸停,一般測試場景滑鼠懸停分兩種常見,一種是滑鼠懸停在某一個元素上方,然後會出現下拉子選單,第二種就是在搜尋輸入過程,選擇自動補全的欄位。關於滑鼠懸停,selenium把這個方法放在了Actions.java檔案中,因此也被稱之為Actions的相關操作。今天跟隨宏哥先來看看滑鼠懸停出現下拉選單和自動補全的情況playwright是如何處理。

2.滑鼠懸停出現下拉選單

滑鼠懸停出現下拉選單,顧名思義就是:滑鼠懸停在某一元素上出現下拉選單。

2.1專案實戰

宏哥這裡用百度首頁的更多元素,懸停出現拉來選單,然後點選“音樂”為例進行實戰。

2.2程式碼設計

程式碼設計如下:

2.3參考程式碼

# coding=utf-8?

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

# 2.註釋:包括記錄建立時間,建立人,專案名稱。
'''
Created on 2023-07-17
@author: 北京-宏哥   QQ交流群:705269076
公眾號:北京宏哥
Project: 《最新出爐》系列初窺篇-Python+Playwright自動化測試-16-處理滑鼠懸停-上篇
'''

# 3.匯入模組
from playwright.sync_api import sync_playwright


with sync_playwright() as p:
    browser = p.chromium.launch(headless=False)
    page = browser.new_page()
    page.goto("https://wwww.baidu.com")
    page.wait_for_timeout(5000)
    dropdown = page.locator("//*[@name='tj_briicon']")
    # 滑鼠懸停
    dropdown.hover()
    # 點選音樂選項
    # page.wait_for_timeout(5000)
    page.locator("//*[@name='tj_mp3']").click()
    page.wait_for_timeout(5000)
    # page.pause()
    browser.close()

2.4執行程式碼

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

2.執行程式碼後電腦端的瀏覽器的動作。如下圖所示:

3.搜尋輸入過程,選擇自動補全的欄位

在搜尋框輸入關鍵詞後,後提示相關內容,然後將其補全進行搜尋。

3.1專案實戰

宏哥這裡就以百度搜尋為例,進行實戰。

3.2程式碼設計

程式碼設計如下:

3.2參考程式碼

# coding=utf-8?

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

# 2.註釋:包括記錄建立時間,建立人,專案名稱。
'''
Created on 2023-07-17
@author: 北京-宏哥   QQ交流群:705269076
公眾號:北京宏哥
Project: 《最新出爐》系列初窺篇-Python+Playwright自動化測試-16-處理滑鼠懸停-上篇
'''

# 3.匯入模組
from playwright.sync_api import sync_playwright


with sync_playwright() as p:
    browser = p.chromium.launch(headless=False)
    context = browser.new_context(viewport={'width': 1920, 'height': 1080}, )
    page = context.new_page()
    page.goto("https://wwww.baidu.com")
    page.wait_for_timeout(3000)
    page.fill("input[name=\"wd\"]", "selenium ap")
    page.wait_for_timeout(3000)
    #自動補全其中一個選擇項
    auto_text = page.locator("//*[@id='form']/div/ul/li[@data-key='selenium appium']").click()
    page.wait_for_timeout(3000)
    page.click("text=百度一下")
    context.close()
    browser.close()

3.3執行程式碼

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

2.執行程式碼後電腦端的瀏覽器的動作。如下圖所示:

4.小結

在Web應用程式中,懸停是一種常見的操作,通常用於顯示提示資訊或下拉選單。

好了,時間不早了,今天就分享和講解到這裡。感謝您耐心的閱讀和學習。

相關文章