WebDriver无法定位元素(链接/ Java)

时间:2012-04-15 15:29:09

标签: java html selenium webdriver

我正在使用Selenium来导航一个网页,该网页有一个名为“Mail”的链接,使用WebDriver(刚刚从RC切换到WebDriver)。我想点击链接,但测试用例总是失败并显示错误:

  

org.openqa.selenium.NoSuchElementException:无法找到元素:   {“method”:“link text”,“selector”:“Mail”}

使用Firebug检查元素时,我得到以下HTML:

<a href="url/New-Doc" target="_top" fahidden="false" faswid="e-switcher-mail" faprop="p-e-switcher-function-id">Mail</a>

这是试图点击链接的Java:

driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
driver.findElement(By.linkText("Mail"));    
driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);

我可以看到该元素出现在屏幕上,但测试用例仍然失败。

是否有人知道我在这里可能缺少什么或找到链接元素的替代方法?

3 个答案:

答案 0 :(得分:1)

尝试通过XPath。例如:

driver.findElement(By.xPath("/a[text()='Mail']"));

还值得仔细检查以确保页面上没有iframe。

答案 1 :(得分:1)

即使我曾经遇到过这种情况。查看源代码并查看您要查找的元素是否在框架内。如果是,首先切换到元素所在的框架,然后查看该元素。它对我有用。

答案 2 :(得分:0)

到目前为止,我找到了这样的案例的最佳解决方法:

  • 安装了Selenium IDE打开Firefox
  • 在firefox中打开测试页
  • 运行selenium IDE,开始录制并单击链接
  • Selenium IDE将为您提供如何定位目标的方法。如果你切换到相对XPath,它应该做魔术(或者,在我的情况下,它总是有帮助)