0

Java 拡張 for ループを使用しているときに、なぜ私が得てIndexOutOfBoundsExceptionいるのですか?私のコードは次のようになります

for (WebElement input : driver.findElements(By.cssSelector("input[type='text']"))) {
    if (input.isDisplayed()) {
        input.clear();
    }
}

Selenium WebDriver を使用してすべての<input type="text" />タグを検索し、表示されている場合はコンテンツをクリアします (そうしないと、別の例外がスローされます)。そして、いくつかのテストで私は得る

java.lang.IndexOutOfBoundsException: Index: 1, Size: 0
    at java.util.ArrayList.rangeCheck(ArrayList.java:604)
    at java.util.ArrayList.get(ArrayList.java:382)

残りのスタック トレースはPastebinにあります。

編集

配列が空であることのチェックを追加しても、このエラーは引き続き発生します

List<WebElement> inputs = driver.findElements(By.cssSelector("input[type='text']"));
if (!inputs.isEmpty()) {
     for(WebElement input : inputs) {
     }
}
4

2 に答える 2

0

このステートメントの結果を確認できますかdriver.findElements(By.cssSelector("input[type='text']"))

driver.findElement拡張ループが実行を開始する前であっても、s は indexOutOfBound 例外を取得しているようです。コンソールで値をデバッグまたは出力してみてください。

于 2013-06-18T07:02:19.337 に答える