gpt4 book ai didi

java - Selenium WebDriver - 将 WebElement 选择器定义为 By 常量是个好主意吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:30:29 28 4
gpt4 key购买 nike

我重构了我的 java 项目以将 WebElement 选择器定义为 By 常量。这允许我将 By 常量传递到我的 findElement 方法中,而不需要在方法中评估 By 选择器类型。这是一个好主意吗?如果将 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;
}

最佳答案

这是一个很好的做法。

您可以将它与 PageObject 一起使用,请参见示例:

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

关于java - Selenium WebDriver - 将 WebElement 选择器定义为 By 常量是个好主意吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16945834/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com