私がテストしているWebサイトには、同じ名前の5つのネストされたクラスを持つテーブルがあります。
テーブルの下に正確に5つのクラスがあることを検証する必要がありますが、それらはすべて同じ名前です。
5つのクラスを繰り返すにはどうすればよいですか?
私が意味することをよりよく説明するために写真を添付しました
私がテストしているWebサイトには、同じ名前の5つのネストされたクラスを持つテーブルがあります。
テーブルの下に正確に5つのクラスがあることを検証する必要がありますが、それらはすべて同じ名前です。
5つのクラスを繰り返すにはどうすればよいですか?
私が意味することをよりよく説明するために写真を添付しました
「反復」の意味によって異なりますが、1つの可能性はXPathの子位置セレクターを使用することです。たとえばfindElement(By.xpath("//div[contains(@class, 'list-container')]/div[contains(@class, 'list-0')]/div[2]"))
、「top-performer-item」divの2番目を検索します。
以下のスニペットを試すことができます:
int numberOfElementsFound = getNumberOfElementsFound(By.cssSelector(".list-container > .list-0 > .top-performer-item"));
for (int pos = 0; pos < numberOfElementsFound; pos++) {
getElementWithIndex(locator, pos).doWhateverYouWantWithTheElement()
}
public int getNumberOfElementsFound(By by) {
return webDriver.findElements(by).size();
}
public WebElement getElementWithIndex(By by, int pos) {
return webDriver.findElements(by).get(pos);
}
最後に、私がしなければならなかったのは、3つのリストに合計15のアイテムがあること、つまり各リストに5つのアイテムがあることを確認することだけです。私は何も欠けていないことを確認するために繰り返す必要があり、あなたの答えの助けを借りて私は答えを見つけました:
List<WebElement> element = driver.findElements(By
.className("top-performer-item"));
assertEquals(15, element.size());
driver.quit();
私をそこに導いたのはあなたたち二人の助けだったので、私は特定の答えを選びませんでした。ありがとうございます!