私はブロックを持っています:
@Block(@FindBy(xpath = "//tr[contains(@class,'bg-success')]"))
public class ShareContentRowBlock extends HtmlElement {
@FindBy(xpath = "//h3[@class='fileName']/span/a")
private TextBlock contentNameText;
public String getContentName() {
return contentNameText.getText();
}
.... // some other elements and methods
}
私はページを説明しました:
public class DocumentLibraryPage extends SitePage {
private List<ShareContentRowBlock> shareContentRowBlocks;
.....
public ShareContentRowBlock getShareContentRowBlock(String name){
for (ShareContentRowBlock conentRowBlock: shareContentRowBlocks){
if(name.equals(conentRowBlock.getContentName())){
return conentRowBlock;
}
}
return null;
}
}
要素を取得しようとすると、見たい要素が正確に返されません。
私は要素ツリーを持つhtmlを持っています:
html
h3.fileName
span
a
h3.fileName
span
a
table.bg-success
h3.fileName
span
a
<a>
テーブル内の要素を取得したいのですが、3 つ<a>
の要素すべてを返します。デバッグしようとすると、<a>
親ブロックの xpath を無視してすべての要素が実際に検出されます。
それの何が問題なのですか?セレクターを変更したり、別の方法でブロックを記述したりする必要がありますか?