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;
}
dziękuję za odpowiedź, moim głównym problemem jest to, czy istnieje problem zdefiniowania zmiennej o postaci statycznej końcowej stałej. –
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