2016-05-23 5 views
1

Ich versuche, den Mauszeiger über ein Animationsmenü zu bewegen und einen Eintrag im Menü auszuwählen. Ich habe versucht, den Mauszeiger über das Menü zu führen, indem ich zuerst xpath starte und dann auf den Menüpunkt per xpath klicke.Bewegen Sie den Mauszeiger über ein Animationsmenü und klicken Sie auf einen Menüeintrag in selen

WebElement ch = driver.findElement(By.xpath(".//*[@id='menu-item-24463']/a")); 
builder.moveToElement(ch).perform(); 
WebElement ch1 = driver.findElement(By.xpath(".//*[@id='menu-item-24463']/div/ul/li[1]/a")); 
ch1.click(); 

Ich erhalte eine Ausnahme

org.openqa.selenium.interactions.MoveTargetOutOfBoundsException: Offset innerhalb des Elements nicht in Sicht gescrollt werden kann

ich auch an der Kette versucht, die Aktionen wie unten

builder.moveToElement(ch).moveToElement(driver.findElement(By.xpath(".//*[@id='menu-item-24463']/div/ul/li[1]/a"))).click().build().perform(); 

, die auch die gleiche Ausnahme auslöst.

Irgendeine Idee, um den Klick im Menü Animation zu erreichen?

+0

Können Sie die Website teilen, wo Sie dies tun? Etwas warten –

Antwort

2

Suchen und Speichern von Web-Elemente

WebElement ch = driver.findElement(By.xpath(".//*[@id='menu-item-24463']/a")); 
WebElement ch1 = driver.findElement(By.xpath(".//*[@id='menu-item-24463']/div/ul/li[1]/a")); 
Actions builder = new Actions(driver); 

Perform Hover

builder.moveToElement(ch).perform(); 

Warten Sie das Element in der Ansicht erscheinen & Perform Klicken

WebDriverWait wait = new WebDriverWait(driver,10); 
wait.until(ExpectedConditions.visibilityOf(ch1)); 
ch1.click(); 
+1

Wow! Das funktioniert. Danke @ maths-rkbala –