1

私は、セレン webdriver の自己学習プロジェクトに取り組んでおり、ログの目的で log4j を使用しています。テスト クラスがあります - すべてのテスト ケースがメソッドとして含まれています ページ クラスがあります - テスト クラスで使用できるすべての Web 要素とメソッドが含まれています

log4j をどのように使用すればよいですか? テスト クラス:

public class ConfiguringPropertiesFile {
    private WebDriver driver;
    private String baseUrl;
    static Logger log = Logger.getLogger(ConfiguringPropertiesFile.class);

@Before
public void setUp() throws Exception {
    driver = new FirefoxDriver();
    baseUrl = "https://www.some-website.com/";

    // Maximize the browser's window
    driver.manage().window().maximize();
    driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
}

@Test
public void test() {
    PropertyConfigurator.configure("log4j.properties");
    driver.get(baseUrl);
    SearchPage.navigateToFlightsTab(driver);
    log.info("Navigate to flights tab");
    SearchPage.fillOriginTextBox(driver, "New York");
    SearchPage.destinationTextBox(driver).sendKeys("Chicago");
    log.info("Enter destination city");
    SearchPage.departureDateTextBox(driver).sendKeys("12/25/2014");
    log.info("Enter departure date");
    SearchPage.returnDateTextBox(driver).sendKeys("12/31/2014");
    log.info("Enter return date");
}

}

ページ クラス:

public class SearchPage {
public static WebElement element = null;
static Logger log1 = Logger.getLogger(SearchPage.class);

/**
 * Returns the flight origin text box element
 * @param driver
 * @return
 */
public static WebElement originTextBox(WebDriver driver) {
    element = driver.findElement(By.id("flight-origin"));
    return element;
}

public static void fillOriginTextBox(WebDriver driver, String origin) {
    PropertyConfigurator.configure("log4j.properties");
    element = originTextBox(driver);
    element.sendKeys(origin);
    log1.info("Entering the source city as " + origin);
}

/**
 * Returns the flight destination text box element
 * @param driver
 * @return
 */
public static WebElement destinationTextBox(WebDriver driver) {
    element = driver.findElement(By.id("flight-destination"));
    return element;
}

}

この状況では、両方のクラスで log4j を初期化していますが、大きな問題は、各メソッドで PropertyConfigurator を呼び出さなければならないことです。

より良い方法で初期化し、毎回 PropertyConfigurator を呼び出す必要がないようにするにはどうすればよいですか?

4

1 に答える 1