2013-06-05 12 views
7

Przebudowałem mój projekt java, aby zdefiniować selektory WebElement jako Według stałych. To pozwala mi przekazać a Przez stałą do mojej metody findElement, bez konieczności oceny typu Wyboru w metodzie. Czy to dobry pomysł? Jakie problemy napotkam, jeśli zdefiniuję zmienne Jako publiczne statyczne stałe końcowe?Selenium WebDriver - definiuje selektory WebElement jako stały dobry pomysł?

Poniżej przykład:

public static final By LOGIN_BUTTON_SELECTOR = By 
     .cssSelector("input[name='logIn']"); 

/** 
* click the Login button 
*/ 
public void clickLoginButton() throws TimeoutException, 
     StaleElementReferenceException { 
    // click the Login button 
    clickElement(LoginPage.LOGIN_BUTTON_SELECTOR); 
} 

/** 
* 
* find an element 
* 
* click the element 
* 
*/ 
public void clickElement(By elementSelector) throws TimeoutException, 
     StaleElementReferenceException { 

    WebElement webElement = null; 

    // find the element by By selector type 
    webElement = getElement(elementSelector); 

    // click the element 
    webElement.click(); 

} 

/** 
* 
* generic method to get a WebElement using a By selector 
* 
*/ 
public WebElement getElement(By elementSelector) throws TimeoutException { 

    WebElement webElement = null; 

    // find an element using a By selector 
    getDriverWait().until(
    ExpectedConditions.presenceOfElementLocated(elementSelector)); 
    webElement = getDriver().findElement(elementSelector); 

    return webElement; 
} 

Odpowiedz

4

Jest to dobra praktyka.

Można go używać z PageObject, patrz przykład:

https://code.google.com/p/selenium/wiki/PageObjects

+0

dziękuję za odpowiedź, moim głównym problemem jest to, czy istnieje problem zdefiniowania zmiennej o postaci statycznej końcowej stałej. –

+0

Powody, dla których jest to dobra praktyka, to: 1. Zapobiega to zmianie elementu w teście, co może spowodować złe testy, 2. Daje centralne miejsce na górze testu, aby zmienić oświadczenie selektora dla twoje elementy, jeśli się zmienią, i 3. Będzie szybciej (ale kto naprawdę dba, jest wystarczająco szybki). – CorayThan

Powiązane problemy