3

我正在使用 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);

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

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

4

3 回答 3

1

通过 XPath 尝试。例子:

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

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

于 2012-04-15T20:34:12.877 回答
1

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

于 2013-03-25T11:09:46.207 回答
0

到目前为止,我为此类情况找到了最好的解决方法:

  • 打开安装了 Selenium IDE 的 Firefox
  • 在firefox中打开测试页面
  • 运行 selenium IDE,开始录制并点击链接
  • Selenium IDE 将为您提供如何定位目标的方法。如果您切换到相对 XPath,它应该会发挥作用(或者,在我的情况下,它总是有帮助)
于 2012-04-15T18:10:01.980 回答