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 が発生します。
同様のブロックからページを構築することは可能ですか?