2016-04-22 9 views
2

In Selen versuche ich ein Element zu finden. Aber die folgenden Fehler bekommen:Selen "Element ist nicht anklickbar" Fehler in Firefox, aber in Chrome arbeiten

org.openqa.selenium.WebDriverException: Element is not clickable at point (1009.25, 448.183349609375). Other element would receive the click: <rect data-sdf-index="7" height="390" width="420" class="aw-relations-noeditable-area"></rect> (WARNING: The server did not provide any stacktrace information) 
Command duration or timeout: 12 milliseconds 

diese Fehler in firefox. Aber es funktioniert erfolgreich in Chrome Browser. Hat jemand eine Lösung dafür?

Ich habe bereits versucht, Hilfe von diesem Beitrag: - Selenium "Element is not clickable at point" error in Firefox aber nicht in der Lage, das Ergebnis zu bekommen.

Ich habe unten Code geschrieben:

public void createPortOnSelectedNode(String nodeName) { 
    ISingleLocator m_nodeContainer = m_nodePage.getNodeContainer(); 
    WebElement node = m_nodePage.getNode(m_nodeContainer, nodeName).getElement(); 
    Actions action = new Actions(DefaultDriver.getWebDriver()); 
    action.moveToElement(node, 40, 0); 
    action.click(); 
    action.perform(); 
} 
+0

u versucht Javascript Testamentsvollstrecker mit? – noor

+0

versuchen Sie, einige Sekunden zu warten, bevor Sie auf das erforderliche Element klicken – Andersson

+0

@noor Hier, wie kann ich Javascript Executor verwendet, da ich nicht genaue Webelement habe. Ich bewege mich von einem Element zum (40, 0) Ort, an dem es kein Webelement gibt. Und nach dem Ausführen der Click-Operation wird dort ein WebElement erstellt. –

Antwort

2

Hallo der obige Fehler kommt unter solchen Szenario, in dem Ihr WebDriver Skript die Aktion aber das Element führt, auf dem Betrieb tun möchten, ist im Inneren des DOM nicht richtig geladen dh seine Position ist nicht innerhalb des DOM-Baums festgelegt (auch beachten Selen ist in der Lage, seine Aktion durchzuführen, weil Element innerhalb des DOM daher Webtreiber nur das Vorhandensein von Element innerhalb des DOM und nicht seine Position innerhalb der DOM sucht DOM)

So wie dieses Problem zu überwinden

1.Give time to DOM to properly give positions to its element. 

und das kann erreicht werden durch:

1.Instead of performing operation's directly at the target area try to do some extra/false 
activity with webdriver which will give time for DOM to position all of his elements 
2.apply Thread.sleep(). 
3. also if you are running your test in smaller window size then set the size to maximum it 
will also help 

i enthalten sind, keinen Code bewirken, dass der Link, den Sie in der Frage beziehen müssen enthält reichliche Menge Angesichts dieser Tatsache habe ich beschlossen, dass jeder unterschätzt, warum dieser Fehler auftritt. danke hoffe das hilft

+0

Kannst du irgendeine zusätzliche Aktivität vorschlagen, um mit webdriver zu tun ?????? –

+0

Bitte lassen Sie mich verstehen, was Ihr Szenario ist das einzige, das ich einige zusätzliche Aktivität vorschlagen kann –

+0

Es gibt ein Rechteck, das nichts als der Knoten ist, wie im Code erwähnt. Die Seite der Rechtecke ist anfangs deaktiviert, Disable bedeutet, dass Sie diese Seiten sehen können, aber keine Aktion ausführen können.Also habe ich einige Änderungen vorgenommen, so dass, wenn ich den Cursor dorthin bewege, du dort eine kleine quadratische Box findest und wenn du den Cursor von dort bewegst, werden die Quadrate versteckt. Jetzt in meinem Code mit moveElement() gehe ich an diese Position. Wenn ich auf eine Seite des Rechtecks ​​klicken, dann sollte diese kleine quadratische Box erscheinen. Aber ich bekomme diesen Fehler wie oben erwähnt –

0

Haben Sie versucht, direkt mit Javascript zu klicken? In Python verwende ich

driver.execute_script("arguments[0].click();", elt) 

in Java sollte es so aussehen executeScript statt ...

Verwandte Themen