2016-06-24 19 views
1

Es gibt ein Element, auf dem ich nach Mouseover auf zwei Elemente klicken muss, d. H. Mouseover auf Element1-> mouseover auf Element2-> klicken Sie auf Element3.Selenium moveToElement zweimal und dann klicken auf Element funktioniert nicht

Unten ist mein Code:

Actions actions = new Actions(driver); 
actions.moveToElement(billingBtn).build().perform(); 
actions.moveToElement(billingconfigurationBtn).build().perform(); 
actions.moveToElement(billingcyclemanagementBtn).click().build().perform(); 

Dies ist für mich nicht funktioniert. Es wird so schnell ausgeführt, dass es nur den ersten Schritt ausführen kann.

Bitte helfen!

+0

Können Sie versuchen, die gesamte "Action" -Kette vor dem Aufruf von '.build() zu erstellen. Perform()'? Z.B. 'actions.moveToElement (billingBtn) .moveToElement (...). moveToElement (...). click(). build(). perform();' – RemcoW

+0

@RemcoW: Versucht. Kein Glück. –

Antwort

0

Wenn das Hover over-Ereignis auf Element 2 vom Aussehen von Some Element abhängt, das nach Mouse over auf Element 1 erscheint, kann die Mouseover-Aktion auf Element 1 und in next statement Mouse over Element auf Element 2 nicht erkannt werden wenn die Maus wurde über das Element schwebt 1 oder nicht, wie es ausgeführt werden schnell

try
Mouseover Element 1
zu tun WebDriver für ein Element warten erscheint nach Hover auf Elemente 1
Mouseover Element 2
Webdriver warten auf Element, das nach Hover auf Element 2angezeigt wird Klicken Sie auf das gewünschte Element

+0

Wir haben es mit dem neuen WebDriverWait (driver, 30) .until versucht (ExpectedConditions.visibilityOf (element)); für alle 3 Elemente. Aber, kein Glück. –

+0

Wird in den Elementen ein Hover-Text angezeigt, nachdem die Maus auf die Elemente verschoben wurde. Wenn es angezeigt wird, wäre es gut zu warten, bis der Hover-Text angezeigt wird, was bestätigen wird, dass die Maus auf den gewünschten Elementen schwebte – manishgdev

+0

Yeah. Gute Idee. Aber es gibt keinen Hover-Text auf irgendeinem Element. –