私は、セレン 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 を呼び出す必要がないようにするにはどうすればよいですか?