
Page Object Model | POM
Page Object Model הוא תבנית עיצוב ליצירת מאגר אובייקטים עבור רכיבי ממשק משתמש באינטרנט.
בדומה ל- Page Object Factory ול- Object Repository.
מומלץ ביותר להשתמש ב- Page Object Factory
1 כל המחלקות תחת חבילה (package)
2 לכול דף מחלקה(class)
3 כל הפונקצויות צריכות להיות מסוג static .
1
// 1 כל המחלקות תחת חבילה (package)
package pageObjects;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
// 2 לכול דף מחלקה(class)
public class webdriveradvance {
private static WebElement element = null;
// 3 כל הפונקצויות צריכות להיות מסוג static ומחזירות WebElement.
public static WebElement username(WebDriver driver){
element= driver.findElement(By.name("username2"));
return element;
}
public static WebElement password(WebDriver driver){
element= driver.findElement(By.name("password2"));
return element;
}
public static WebElement submit(WebDriver driver){
element= driver.findElement(By.id("submit"));
return element;
}
}
מימוש
public static WebDriver driver;
@BeforeClass
public static void open_browser()
{
System.out.println("Open Chrome");
System.setProperty("webdriver.chrome.driver","/Users/izik/Downloads/Selenium/chromedriver");
driver = new ChromeDriver();
driver.get("http://yoniflenner.net/Xamples/webdriveradvance.html");
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
}
@Test
public void a_test()
{
webdriveradvance.username(driver).sendKeys("Selenium");
webdriveradvance.password(driver).sendKeys("webdriver");
webdriveradvance.submit(driver).click();
}