我决定尝试 yandex HtmlElements 框架来构建包含几个类似块的页面。目的是在单独的类中描述单个块及其所有方法,然后在主页中迭代它们的列表。
按照https://github.com/yandex-qatools/htmlelements的示例,我做了以下操作:
部分类:
@FindBy(xpath = ".//div[@class='score-section']")
public class Section extends HtmlElement {
@Timeout(10)
@FindBy(xpath = ".//div[@class='account-title']")
private WebElement accountTitle;
public void printValues() {
System.out.println(accountTitle.getText());
}
页面类:
public class MainPage extends BasePage {
public MainPage(WebDriver driver) {
super(driver);
PageFactory.initElements(new HtmlElementDecorator(new HtmlElementLocatorFactory(driver)), this);
}
List<Section> sections;
public void iterateOverSections() {
for (Section section : sections) {
section.printValues();
}
}
但是,我得到了 accountTitle 的 NoSuchElementException。
是否有可能(以及如何?)从类似的块构建页面?