Java プロジェクトをリファクタリングして、WebElement セレクターを By 定数として定義しました。これにより、メソッドで By セレクター タイプを評価する必要なく、By 定数を findElement メソッドに渡すことができます。これは良い考えですか?By 変数を public static final 定数として定義すると、どのような問題が発生する可能性がありますか?
次に例を示します。
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;
}