5

HTML 内のテーブルに含まれるページの n 番目の画像にアクセスする必要があります。行ごとに画像をクリックして次の画面に移動する必要があります

ここで提供されているさまざまなソリューションを試しましたが、findElement(by) 構文を使用しているため、これらの支援を使用してコードを実行できません

私のコードは次のとおりです。

public void editUser(String userName)
{
    System.out.println("in editUser 1");
    int row = getCellRow(table, userName);
    System.out.println("in editUser 2");

    WebElement  edit = driver.findElement(By.xpath("//*[@class='grid']/tbody/tr[2]/td[8]/a[1]/img"));

    System.out.println("in editUser 3");
    edit.click();
    System.out.println("in editUser 4");
    clickButton(closeButton);
}

エラー:

No such element exception. Unable to locate element: {"method":"xpath", selector"://img[@title='User Management'])[2]

Selenium IDE は私の要素を認識できましたが、Selenium Web ドライバーは認識できませんでした! ご意見をお聞かせください

4

2 に答える 2

8

[ ] を使用して、たとえば n 番目の要素を参照します

WebElement  edit = driver.findElement(By.xpath("(//*[@class='grid']//img)[n]"));

n は要素番号です。

于 2013-01-17T05:24:25.623 に答える
2

HTML スニペットは完全なビューではないため、使用されている xpath が正しいかどうかをアドバイスすることはできません。ここに提示されている内容を使用して、前進するために次のことを提案できます

  1. xpather (Firefox プラグイン) を使用して、使用した xpath がクリックしようとしている正しい画像を返すかどうかを確認してください。
  2. 上記の条件が満たされる場合、webdriver がイメージを見つけようとする前に、イメージをロードするタイミングの問題が発生する可能性があります。
于 2012-10-13T15:42:42.267 に答える