为了抽象和可重用性,将网页上的元素建模为类的理想方法是什么?
目前,我创建的是一个包含以下成员变量的 BaseElement.java 类:
WebDriver webdriver;
构造函数:
protected BaseElement(WebDriver driver)
{
//Initialization.
}
然后我将这个类扩展到代表网页上某个元素的其他类中。
例如,我有一个扩展 BaseElement.java 的 Button.java 类。
public class ButtonElement extends BaseElement {
String locator;
By by;
WebElement button;
protected ButtonElement(WebDriver driver, String locator, By by) {
super(driver);
this.by = by;
this.locator = locator;
//code to find the element using driver.findElement()
// I am not sure how to use By in here depending upon what I pass in the constructor when I create an object of this class. Any suggestions?
}
public void click() {
button.click();
}
//Other methods which will interact with the element in other ways.
}
因此,在我的 PageObject 类中,我将使用上述内容:
Button loginButton = new Button(driver,"btn-Login",By.id);
loginButton.click();
这是正确的方法吗?有没有更好的方法来抽象,在单个类中隐藏复杂的逻辑,并从 webdriver 的角度重用按钮、文本框、选择列表等元素?提前致谢!