異なる行のCity列の値を画像の下の表から印刷しようとしています。Selenium:Webtableの異なる行の値を印刷できません
以下のコードを使用しました。私のコードは、異なる都市を印刷する代わりに、「ドバイ」を4回印刷します。誰かがこれを修正する際に私を助けてくれる?
System.setProperty("webdriver.chrome.driver","C:\\Selenium\\Drivers\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.manage().window().maximize();
driver.get("http://toolsqa.com/automation-practice-table/");
WebElement body = driver.findElement(By.xpath("//*[@id='content']/table/tbody"));
List<WebElement> rows = body.findElements(By.tagName("tr"));
System.out.println(rows.get(0).findElement(By.xpath("//td[2]")).getText());
System.out.println(rows.get(1).findElement(By.xpath("//td[2]")).getText());
System.out.println(rows.get(2).findElement(By.xpath("//td[2]")).getText());
System.out.println(rows.get(3).findElement(By.xpath("//td[2]")).getText());
詳細な説明はありがとうSaurabh。今、私のコードは完璧に動作します。 –
@Saurabh '/ tbody // td [2]'が1つの要素(この場合はtr)をスキップしたように、xpathに '/'を指定すると、興味がありますか?また、市の列の値を印刷するのにも私の答えが働くでしょうか?私はセレンの専門家ではない。だから、私はちょうど興味があった。 – Harish
@Harish '/'ルートノードから選択し、 '//'現在のノードからドキュメント内のノードを選択します。これは 'tbody'にあるときに選択すると一致します現在のノードでは、その後、私は '/'を使って、 'tbody'から要素を探すようになりました... –