如何在Selenium Web驱动程序中单击下一个span元素

时间:2014-02-18 11:25:40

标签: java selenium

我想点击一个href链接,然后返回上一页,然后点击下一个带有文字“Meer info”的href链接。

我编写了以下代码,但它产生了一个异常。我可以访问网页,然后点击我要点击的文字名称为“Meer info”的第一个链接,而不是转到后面,但是我想点击第二个linkText也使用相同的文字名称“Meer info”但我不喜欢我不知道该怎么做。

WebDriver driver = new FirefoxDriver();
driver.get("http://turksegids.nl/index.php");
Thread.sleep(3000);
driver.findElement(By.cssSelector("input[type='image'][value='Zoek!']")).click();
Thread.sleep(5000);
driver.findElement(By.linkText("Meer info")).click();
Thread.sleep(4000);
driver.findElement(By.linkText("Terug naar de resultatenpagina")).click();
Thread.sleep(8000);
driver.findElement(By.linkText("//a[text()=\"Meer info\"]/following- 
sibling::a[2]")).click();

Thread.sleep(4000);
driver.close();
driver.quit();

我收到此例外

Unable to locate element: {"method":"link text","selector":"//a[text()=\"Meer info\"]/following-sibling::a[2]"}

2 个答案:

答案 0 :(得分:1)

您可以使用以下代码:

WebDriver driver = new FirefoxDriver();
driver.get("http://turksegids.nl/index.php");
driver.findElement(By.cssSelector("input[type='image'][value='Zoek!']")).click();
driver.findElement(By.linkText("Meer info")).click();
driver.findElement(By.linkText("Terug naar de resultatenpagina")).click();
driver.findElement(By.xpath("//*[@id='resultatenklik_28957_info']/u")).click();
driver.close();
driver.quit();

看看它是否有效

答案 1 :(得分:1)

尝试使用

List<WebElement> element = driver.findElements(By.linkText("Meer info"));
element.get(2).click();

而不是

driver.findElement(By.linkText("//a[text()=\"Meer info\"]/following- 
sibling::a[2]")).click();

它会起作用!!