0
我正在開發一個自動學習selenium webdriver項目並使用log4j進行日誌記錄。 有一個測試類 - 包含了所有的測試用例方法 有一個頁面類 - 包含所有可通過測試類使用如何在selenium webdriver測試框架中更高效地使用log4j
我應該如何使用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?