2016-05-12 5 views
1

Ich benutze Nightwatch mit Chrome-Treiber für UI-Testing. Ich bin auf ein Problem gestoßen, als ich versucht habe, auf der Webseite auf "primary-btn" zu klicken. Zuerst gibt das waitForElement eine Warnung zurück "Warnt: WaitForElement hat 2 Elemente für den Selektor gefunden" # primary-btn ". Nur der erste wird überprüft" und der nachfolgende .click ('# primary-btn') liefert nicht das gewünschte Ergebnis.Nightwatch .waitForElementVisible ('# primary-btn') Warnung: WaitForElement gefunden 2 Elemente

Ich überprüfte die Web-Seite, um zu sehen, ob tatsächlich 2 Elemente mit dem Namen "# primary-btn" mit document.getElementById ('primary-btn') existieren. Allerdings hat die Funktion nur 1 Element mit der ID 'primary-btn' aufgelistet

Ich bin mir nicht sicher, warum das passiert. Unterstützt die Nachtwächter-Unterstützung das Ende der Animation?

Antwort

0

Es bedeutet, dass Sie 2 Elemente auf Ihrer Seite mit einer identischen ID haben. Während der Standard einen eindeutigen Namen vorgibt, wird er im Browser nicht erzwungen. Sie können es überprüfen, indem Sie diesen Befehl in Ihrem Browser ausführen:

document.querySelectorAll("[id='primary-btn']") 

Oder:

$x("//*[@id='primary-btn']") 

Also das erwartete Element zu erhalten, müssen Sie Ihre Wähler mit einem anderen Zustand zu verlängern. Es könnte zum Beispiel sein:

'#container-id #primary-btn' 
+0

versuchen soll, wenn ich den Befehl document.querySelectorAll laufen ("[id = 'Primär-btn']") erhalte ich folgendes Ergebnis

payyans4u

+1

Der Container wurde wahrscheinlich irgendwann für die Animation geklont und dann gelöscht, während die doppelte ID erklärt würde. –

0

Sie diese

document.querySelectorAll("div[id='primary-btn']:nth-child(1)") 
Verwandte Themen