尝试单击链接时出错

时间:2017-04-10 20:23:56

标签: java eclipse google-chrome selenium

点击链接无效,显示如下错误。我尝试使用Xpath和Linktext

代码

driver.findElement(By.linkText("Repayment Options")).click();
driver.findElement(By.xpath(".//*@id='menucontent']/div/nav/ul/li[6]/a")).click();

错误

"Exception in thread "main" org.openqa.selenium.WebDriverException: unknown error: Element
<a href="/RepaymentOptions/RepaymentOptions">...</a> is not clickable at point (312, 404).
Other element would receive the click:<div class="modal-backdrop fade"></div>"

2 个答案:

答案 0 :(得分:0)

如果仔细查看错误,它会告诉您问题所在。 Selenium试图点击你请求的元素,但它目前被另一个元素阻止。如果您查看将收到点击的元素的HTML,您将看到

<div class="modal-backdrop fade"></div>

这可能是目前正在运行的对话框背后的半透明背景,或者您可能只是被解雇但浏览器比您的代码慢一点。解决这个问题的一种方法是等待这个模态背景消失。你可以这样做

new WebDriverWait(driver, 3).until(ExpectedConditions.invisibilityOfElementLocated(By.cssSelector("div.modal-backdrop")));
driver.findElement(By.linkText("Repayment Options")).click();
driver.findElement(By.xpath(".//*@id='menucontent']/div/nav/ul/li[6]/a")).click();

答案 1 :(得分:0)

如果您遇到任何您无法直接处理的异常困难,那么您可以先尝试使用操作类移动到该元素,然后单击它如下所示:

 WebElement we = driver.findElement(By.cssSelector("#menucontent > div > nav > ul > li:nth-child(6) > a");
 Actions action = new Actions(driver);
 action.moveToElement(we).click().build().perform();