-1

テーブル内の行をカウントしたくないとします。しかし、利用可能なIDがない場合。およびネストされたテーブルが使用されます。count no of rows の xpath の書き方。私が試してみました

WebDriver driver = new FirefoxDriver();
driver.get("http://newtours.demoaut.com/");
List<WebElement> list=driver.findElement(By.xpath("//table[@width='270']"));
System.out.println(list.size()); 

例: http://newtours.demoaut.com/ フライト テーブルの行数を数えます。

ありがとう、

4

3 に答える 3

1

あなたは2つのことを間違っています。

まず、.findElementロケーターに一致する最初の要素を返す which を使用しています。

次に、tableそのテーブル内の行とは何の関係もありません。

あなたはこれを行うことができます:

List<WebElement> list = driver.findElement(By.xpath("//table[@width='270']")).findElements(By.cssSelector("tbody > tr"));

listその中に各tr(行)が含まれるようになりましたtable

于 2013-11-12T10:13:36.647 に答える
0

XPath は遅く、エラーが発生しやすいため、可能な限り XPath を避ける必要があります。テーブル幅をロケーターとして使用するのがどれほど安定するかはわかりませんが、あなたが使用したので、私も使用します。

WebDriver driver = new FirefoxDriver();
driver.get("http://newtours.demoaut.com/");
List<WebElement> list = driver.findElements(By.cssSelector("table[width='270'] > tbody > tr"));
System.out.println(list.size());

CSS セレクターのリファレンス

于 2015-08-12T18:27:38.820 に答える