2017-04-10 9 views
-2

Klicken auf Links funktioniert nicht und zeigt unter Fehler. Ich habe versucht, beide XPath und LinktextFehler beim Versuch, auf den Link zu klicken

-Code

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

Fehler

"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

Sind Sie sicher, dass der Pfad richtig ist? – strash

+0

Willkommen bei Stack Overflow! Bitte [besuchen Sie die Tour] (http://stackoverflow.com/tour), um zu sehen, wie die Seite funktioniert und welche Fragen hier behandelt werden. –

+0

Mögliche Duplikate von [Debugging "Element ist nicht anklickbar Punkt" Fehler] (http://stackoverflow.com/questions/11908249/debugging-element-is-not-clickable-at-point-error) – SiKing

Antwort

0

Wenn Sie eine abnormalen Schwierigkeiten konfrontiert sind, die Sie nicht in der Lage sind, direkt zu handhaben, dann können Sie zunächst versuchen, dieses Element mit Aktionen Klasse zu verschieben es dann auf, wie unten:

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

Danke Kushal, es hat funktioniert – johnsonambrose

0

Wenn Sie genau auf den Fehler suchen mit, es sagt Ihnen, was das Problem ist. Selen versucht, auf das gewünschte Element zu klicken, aber es wird derzeit von einem anderen Element blockiert. Wenn Sie an dem HTML-Code für das Element suchen, die den Klick erhalten hätten, werden Sie

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

sehen, dass wahrscheinlich ein durchscheinend Hintergrund hinter einem Dialog, der zur Zeit auf oder vielleicht haben Sie gerade entlassen, aber der Browser war ein wenig langsamer als dein Code. Um dies zu vermeiden, muss man warten, bis dieser modale Hintergrund verschwindet. Sie können dies tun, wie

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

Danke Kushal und Jeff. Beide Lösungen haben funktioniert! – johnsonambrose

Verwandte Themen