簡體   English   中英

Selenium Webdriver:需要解決與@BeforeTest (TestNG) 有關的非常具體的問題

[英]Selenium Webdriver: Need solution for a very specific issue pertaining to @BeforeTest (TestNG)

新用戶提醒

使用 Java、webdriver 和 TestNG

我有 2 個單獨的方法 1. 用於啟動驅動程序 2. 登錄

我在@BeforeTest 中調用了驅動程序啟動方法,這也將啟動應用程序登錄頁面。 我還想在@BeforeTest 中調用“登錄”方法(因為幾乎所有測試都需要這樣做),但問題是我也有 4-5 個針對此登錄頁面的測試(例如測試版本、版權、忘記密碼鏈接) )。 因此,對於這些測試,不需要登錄(或者不應該登錄)。

有沒有一種方法可以在與登錄頁面有關的測試之前執行一組方法調用,以及在所有其他測試之前執行一組不同的方法調用。 請讓我知道是否有其他方法可以實現。

如果需要更多信息,請告訴我。

我將創建一個基類,在其中放置帶有登錄名的 @BeforeTest 方法,並且只讓需要登錄的測試類繼承它:

public abstract class TestBaseForLogin{

    @BeforeTest
    public void loginBeforeEachTest() {
        // do the login
    }
}

現在,如果您想在每次測試之前匯集需要登錄的測試,那么只需從基類繼承即可。

public class TestThatNeedLogin extends TestBaseForLogin{

    @BeforeTest
    public void beforeEachTest() {
        // do whatever you need before the test
    }   
}

否則就不用基類(或另一個基類)

public class TestLogin {

    @BeforeTest
    public void beforeEachTest() {
        // do whatever you need before the test
    } 

}

您繼承的類將首先執行基類的@BeforeTest,然后才執行它們自己的@BeforeTest 標記方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM