そのため、私のプロジェクトでは、Selenium を使用して重要なフィールドが DOM にあることを確認しています。私が分析している XML は以下のとおりです。
<results>
<result index="1">
<track>
<creator>God</creator>
</track>
</result>
<results>
まず、次のコマンドを実行して、すべての結果タグのリストを webElements として取得します。
List<WebElement> result_list = driver.findElements(By.tagName("result"));
次に、作成者タグが存在することを確認するために for ループを実行します。
try {
for (int i = 0; i < result_list.size(); i++) {
WebElement track = result_list.get(i).findElement(By.tagName("track"));
System.out.println(track.findElement(By.tagName("creator")).getText());
System.out.println(track.getTagName());
System.out.println(track.getAttribute("creator"));
}
result = true;
}
catch (Exception e) {
result = false;
}
各タグの内容を確認するために、print ステートメントを挿入しました。私はセレンが初めてなので、Web要素に対して正しく反復していることを確認しようとしています。つまり、getTextとgetAttributeへの各呼び出しは、ループの反復ごとに異なる必要があります。唯一の問題は、getText() 呼び出しごとに空の文字列が出力され、getAttribute() 呼び出しごとに null が出力されることです。なぜこうなった?以下に出力します。
<empty string> (nothing is printed, just illustrating the empty string)
track
null
どんな助けでも大歓迎です!