2017-04-10 116 views
-2

点击链接不起作用,显示下面的错误。我试着用XPath和链接文字尝试点击链接时出错

代码

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>" 
+0

你确定这条路是对的吗? – strash

+0

欢迎来到Stack Overflow!请[参观](http://stackoverflow.com/tour)了解网站的工作原理以及在这里的主题。 –

+0

[Debugging]元素的可能重复点不可点击“error”(http://stackoverflow.com/questions/11908249/debugging-element-is-not-clickable-at-point-error) – SiKing

回答

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(); 
+0

谢谢Kushal,它工作 – johnsonambrose

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(); 
+0

谢谢Kushal和杰夫。这两个解决方案都有效 – johnsonambrose