דלג לתוכן
חזור

אוטומציית בדיקות - בחירת אלמנטים יעילה עם Playwright Python באמצעות מזהי בדיקה

פורסם:

מבוא

בבדיקות יישומי אינטרנט, בחירה יעילה של אלמנטים היא קריטית לביצוע בדיקות עקבי ואמין. אתגרים נפוצים כוללים הבטחת הגדרה נכונה של סלקטורים, ובחירת אלמנטים אינטואיטיבית וניתנת לתחזוקה. Playwright, בשילוב עם Pytest, מציע פתרונות רבי עוצמה כדי לענות על צורך זה ביעילות.

הפתרון המוצג במאמר זה מודגם בפרויקט הדוגמה שלי Playwright Python example project, שפותח בשיתוף עם אליאס שורוש. הוא מדגים כיצד להשתמש ב-Pytest fixture כדי להגדיר ארגומנטים להפעלת דפדפן, להגדיר סלקטורים, ולמנף את שיטות בחירת האלמנטים המשופרות של Playwright, מה שמבטיח סביבת בדיקה עקבית ויעילה בכל הבדיקות בסשן.

מימוש הפתרון

קוד הפתרון נמצא כאן.

@pytest.fixture(scope="session")
def browser_type_launch_args(browser_type_launch_args: Dict, playwright: Playwright):
    """Fixture to set browser launch arguments.

    This fixture updates the browser launch arguments to start the browser maximized
    and sets the test ID attribute for selectors.

    Args:
        browser_type_launch_args (Dict): Original browser type launch arguments.
        playwright (Playwright): The Playwright instance.

    Returns:
        Dict: Updated browser type launch arguments with maximized window setting.

    Note:
        This fixture has a session scope, meaning it will be executed once per test session.

    See Also:
        https://playwright.dev/python/docs/api/class-browsertype#browser-type-launch
    """
    playwright.selectors.set_test_id_attribute("data-test")
    return {**browser_type_launch_args, "args": ["--start-maximized"]}

בואו נפרק את הקוד:

שימוש בבדיקה

שימוש הבדיקה נמצא כאן.

עם תצורת תכונת מזהה הבדיקה, אנו יכולים כעת להשתמש בשיטת Playwright לבחירת אלמנטים אינטואיטיבית יותר. הנה דוגמה לאופן שבו זה משפר את קוד הבדיקה שלנו:

import pytest
from playwright.sync_api import Page, expect

from enums.User import User

class TestInventory:

    @pytest.mark.parametrize(
        "browser_context_args", [User.STANDARD_USER], indirect=True
    )
    def test_inventory_page(self, browser_context_args, page: Page):
        expect(page.get_by_test_id("title")).to_have_text("Products")

יתרונות גישה זו

  1. קריאות משופרת: על ידי הגדרת תכונת מזהה הבדיקה ושימוש בה, אנו הופכים את בחירת האלמנטים לאינטואיטיבית וקלה יותר לקריאה, ומשפרים את התחזוקה הכוללת של קוד הבדיקה שלנו.
  2. התאמה לשיטות עבודה מומלצות: שימוש במזהי בדיקה לבחירת אלמנטים הוא נוהג מומלץ בבדיקות אינטרנט, מכיוון שהוא יוצר הפרדה ברורה בין ענייני בדיקה לבין עיצוב או מבנה האפליקציה.

לסיכום

מינוף Pytest fixtures עם Playwright מספק דרך עוצמתית לייעל את בחירת אלמנטי הדפדפן לבדיקות יישומי אינטרנט. על ידי הגדרת תצורות מזהה בדיקה ברמת הסשן, אנו יכולים להבטיח ביצועי בדיקה עקביים, יעילים וניתנים לתחזוקה. השימוש ב-get_by_test_id() משפר עוד יותר את קריאות קוד הבדיקה שלנו ואת חוסנו. גישה זו לא רק חוסכת זמן אלא גם משפרת את האמינות והתחזוקה של חבילת הבדיקות שלנו, ותורמת לאיכות הכוללת של תהליך הבדיקה שלנו.

בדיקות מהנות!


הציעו שינויים

מוכנים לבנות את מפת הדרכים שלכם? נתחיל כאן


הפוסט הקודם
אוטומציית בדיקות - כיצד לעקוף התחברות מחדש עם Playwright Python ו-Pytest
הפוסט הבא
אוטומציית בדיקות - ביצוע בדיקות גמיש עם Playwright Python ו-GitHub Actions