2016-11-29 3 views
1

Es gibt eine Menge Posts über diesen Fehler beim Klicken. Ich erhalte diesen Fehler, wenn ich bin, der nicht versucht, zu klicken.Selenium Chrome Driver Actions.MoveToElement-Empfangsfehler "Element kann nicht an Punkt geklickt werden. Anderes Element würde den Klick erhalten"

Ich versuche zu moveToElement (ja das Element auf dem Bildschirm sichtbar, kein Scrollen erforderlich)

Die Seite I-Tests bin in einer Art und Weise geschrieben, dass es unsichtbar „Proxy-Elemente“, die die Tasten überlagern . Es wurde auf diese Weise geschrieben, um eine Drag-and-Drop-Interaktion zu ermöglichen. Unabhängig davon kann ich die Seite nicht ändern, ich bin nur für das Testen verantwortlich.

Das Szenario ist:

Ich finde das Element

IWebElement element= Driver.FindElement(By.id("btn_open")); 

ich eine Aktion erstellen und

Actions builder = new Actions(Driver); 
builder.MoveToElement(element); 
builder.perform(); 

der nächste Schritt zum Elemente bewegen suchen Sie das "Proxy" Element

IWebElement element = Driver.SwitchTo().ActiveElement(); 

dann würde ich mit dem Rest meines Tests fortfahren.

Problem ist auf der Leistung, es Fehler mit der Ausnahme "Element ist nicht anklickbar".

Ich war in der Lage, um 90% dieser Probleme zu arbeiten, aber dieser, ich bin fest stecken.

Ich habe so viele Lösungen versucht es ist verrückt, jede Hilfe wäre super !!!

Dank

hier ist der Ausgang und Stack-Trace

Test Name: Navigation_Detail_Save 
Test FullName: UITest_Navigation.Save 
Test Source: c:\Core\UITests\UITest_Navigation.cs : line 489 
Test Outcome: Failed 
Test Duration: 0:00:04.4112176 

Result Message: 
Test method UITest_Navigation.Save threw exception: 
System.InvalidOperationException: unknown error: Element is not clickable at point (489, 102). Other element would receive the click: <div class="sw-drag-proxy ui-draggable-handle sw-active" title="" style="position: absolute; top: 45px; left: 409.781px; height: 23px; width: 72px;"></div> 
    (Session info: chrome=54.0.2840.99) 
    (Driver info: chromedriver=2.24.417431 (9aea000394714d2fbb20850021f6204f2256b9cf),platform=Windows NT 10.0.14393 x86_64) 
Result StackTrace: 
at OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(Response errorResponse) 
    at OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary`2 parameters) 
    at OpenQA.Selenium.Remote.RemoteWebDriver.InternalExecute(String driverCommandToExecute, Dictionary`2 parameters) 
    at OpenQA.Selenium.Remote.RemoteMouse.MouseMove(ICoordinates where) 
    at OpenQA.Selenium.Interactions.MoveMouseAction.Perform() 
    at OpenQA.Selenium.Interactions.CompositeAction.Perform() 
    at OpenQA.Selenium.Interactions.Actions.Perform() 
    at UITest_Navigation.Save() in c:\Core\UITests\UITest_Navigation.cs:line 509 
+0

Können Sie uns die Zeilennummer von Code, der den Fehler und die vollständige Stapelüberwachung verursacht? Ich bin verwirrt, weil Ihr Code nichts anklickt, aber Sie zeigen Fehler vom Klicken an. – Buaban

+0

Ich habe die Stack-Trace aus dem Test hinzugefügt – prak

+0

Ist es möglich, Maus zuerst auf das Proxy-Element zu bewegen, und dann auf die Schaltfläche verschieben? 'builder.MoveToElement (proxyElement) .MoveToElement (button) .perform();' – Buaban

Antwort

0

Vor ein paar Tagen hatte ich das gleiche problema und ich mit dieser Methode gelöst

 WebDriverWait wait = new WebDriverWait(driver, new TimeSpan(0, 0, 30)); 
     wait.Until(ExpectedConditions.ElementExists(By.XPath(element))); 
     wait.Until(ExpectedConditions.ElementIsVisible(By.XPath(element))); 
Verwandte Themen