0

私がテストしているWebサイトには、同じ名前の5つのネストされたクラスを持つテーブルがあります。

テーブルの下に正確に5つのクラスがあることを検証する必要がありますが、それらはすべて同じ名前です。

5つのクラスを繰り返すにはどうすればよいですか?

私が意味することをよりよく説明するために写真を添付し​​ましたここに画像の説明を入力してください

4

3 に答える 3

3

「反復」の意味によって異なりますが、1つの可能性はXPathの子位置セレクターを使用することです。たとえばfindElement(By.xpath("//div[contains(@class, 'list-container')]/div[contains(@class, 'list-0')]/div[2]"))、「top-performer-item」divの2番目を検索します。

于 2012-11-27T22:01:14.080 に答える
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);
  }
于 2012-11-27T16:06:30.630 に答える
2

最後に、私がしなければならなかったのは、3つのリストに合計15のアイテムがあること、つまり各リストに5つのアイテムがあることを確認することだけです。私は何も欠けていないことを確認するために繰り返す必要があり、あなたの答えの助けを借りて私は答えを見つけました:

List<WebElement> element = driver.findElements(By
            .className("top-performer-item"));

    assertEquals(15, element.size());
    driver.quit();

私をそこに導いたのはあなたたち二人の助けだったので、私は特定の答えを選びませんでした。ありがとうございます!

于 2012-11-28T08:40:28.263 に答える