0

そのため、私のプロジェクトでは、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

どんな助けでも大歓迎です!

4

2 に答える 2

1

Selenium は XML を処理しません。HTMLのみです。ドキュメントを読んでください。非常に明確です。
プラグインがあるかもしれません

于 2013-05-28T23:44:44.870 に答える