페이지 개체 모델 – Selenide 자습서 시리즈

이 튜토리얼에서는 Selenide에서 Page Object Model을 구현하는 방법을 다룰 것입니다. 페이지 개체 모델은 코드 가독성과 유지 관리성을 개선하고 코드의 중복을 줄이기 위해 널리 사용되는 디자인 패턴입니다. Selenide는 페이지 개체 설정을 실제로 수행합니다. 어떻게 할 수 있는지 살펴보겠습니다.

설정 페이지 클래스



먼저 모든 페이지 로케이터와 페이지 메서드를 저장할 수 있는 페이지 클래스를 설정해야 합니다.

public class HomePage {
// add locators and methods here
}



설정 페이지 로케이터



기본 페이지 클래스가 설정되면 페이지 로케이터를 클래스에 추가할 수 있습니다.

public class HomePage {
    public SelenideElement getStartedBtn() {
        return $(By.id("get-started"));
    }
    public SelenideElement headingTitle() {
        return $("h1");
    }
    public SelenideElement logoLink() {
        return $(By.xpath("//a[@class=\"custom-logo-link\"]"));
    }
    public ElementsCollection linksList() {
        return $$("#primary-menu li[id*=menu-item]");
    }
}


참고: 자동 가져오기가 작동하지 않으면 Selenide에서 필요한 모든 패키지를 가져와야 합니다.


설정 페이지 방법



이제 페이지 로케이터를 설정했으므로 코드 중복을 줄이기 위해 필요한 페이지 메서드를 추가할 수 있습니다.

    public HomePage open() {
        Selenide.open("https://practice.automationbro.com/");
        return this;
    }
    public void assertUrl(String expectedUrl) {
        String url = WebDriverRunner.url();
        assertEquals(url, expectedUrl);
    }



POM을 사용하도록 테스트 업데이트



테스트 파일에서 HomePage 클래스를 초기화한 다음 로케이터를 교체하고 페이지 로케이터와 페이지 메서드를 추가해야 합니다. 예를 들면 다음과 같습니다.

    @Test
    public void testInteractingWithElements() {
        // Open page url
        home
            .open()
            .assertUrl("https://practice.automationbro.com/");
        // By ID
        home.getStartedBtn().click();
        // verify heading by CssSelector
        home.headingTitle()
            .shouldHave(text("Think different. Make different."));
        // verify by XPath
        home.logoLink()
            .should(be(visible));
    }


위에서 본 것처럼 몇 단계만 거치면 Selenide에서 페이지 개체 모델 개념을 구현할 수 있습니다. 자세한 내용은 아래 동영상을 확인하세요.




👩🏻‍💻 오늘 SDET-U 아카데미에 가입하여 SDET 여정을 시작할 시간입니다 👇🏻
Join Academy

📧 mymailing list를 구독하여 이와 같은 더 많은 콘텐츠에 액세스하고 놀라운 무료 경품 행사에 참여하세요.

👍 여기에서도 내 콘텐츠를 팔로우할 수 있습니다.



  • ...

    읽어 주셔서 감사합니다!

    좋은 웹페이지 즐겨찾기