我正在使用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);
我可以看到该元素出现在屏幕上,但测试用例仍然失败。
是否有人知道我在这里可能缺少什么或找到链接元素的替代方法?
答案 0 :(得分:1)
尝试通过XPath。例如:
driver.findElement(By.xPath("/a[text()='Mail']"));
还值得仔细检查以确保页面上没有iframe。
答案 1 :(得分:1)
即使我曾经遇到过这种情况。查看源代码并查看您要查找的元素是否在框架内。如果是,首先切换到元素所在的框架,然后查看该元素。它对我有用。
答案 2 :(得分:0)
到目前为止,我找到了这样的案例的最佳解决方法: