在Selenium Java中找不到元素

时间:2019-07-04 06:24:50

标签: java selenium

[[Img1 ][Img2[Img3]”我试图通过其链接文本来获取该元素。但是要低于异常。 线程“主” org.openqa.selenium.NoSuchElementException中的异常:没有这样的元素:无法找到元素:{“方法”:“链接文本”,“选择器”:“ CFDSDSR”}

我尝试通过切换到框架来进行跟踪,但是随后它给出了未找到的框架,但框架存在:

driver.switchTo().frame("main");
driver1.switchTo().defaultContent();

XPath:

  

/ html / body / table / tbody / tr / td / form / table 3 / tbody / tr / td / table / tbody / tr 3 / td / table / tbody / tr [ 6] / td 3 / a

代码:  尝试1:

driver.findElement(By.linkText("CFDSDSR")).click();

尝试2:

driver.findElement(By.xpath("//html/body/table/tbody/tr/td/form/table[1]/tbody/tr/td/table/tbody/tr[2]/td/table/tbody/tr[6]/td[1]/a")).click();

HTML:

<frame name="main" marginheight="4" marginwidth="4" src="../utilityintro.jsp?title=Miscellaneous Utilities">
..........
..........
<a href="javascript:openpopup('CFDSDSR', '15003', 'COMPLETE')" class="lbcontext">CFDSDSR</a>
..........

..........
</frame>

试图将该帧中的所有元素都存储到ArrayList中,即使不起作用。

预期: 它应该选择该元素,然后单击弹出窗口。 实际: NoSuchElementException

3 个答案:

答案 0 :(得分:1)

我成功使用By.PartialLinkText(“ xyz”); 尝试一下。

driver.findElement(By.PartialLinkText("CFDSDSR");

希望您的问题得到解决

答案 1 :(得分:0)

这是经典问题吗?如果是JavaScript操作,对a href的clic无效。您需要javascrit的clic

driver.waitUntil(ExpectedConditions.elementToBeClickable(By.xpath("..."));
((JavascriptExecutor) driver)
                .executeScript("document.evaluate(\"" + "...").replace("\"", "\\\"") + "\", document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null).snapshotItem(0).click();");

答案 2 :(得分:0)

我现在在这里回答我自己的问题。 在深入研究代码之后,我在代码中增加了一行来使其工作。 在driver.switchTo()。frame(“ main”);之前;我添加了driver.switchTo()。defaultContent();它给了我预期的结果。 :)