2017-04-10 86 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

相關問題