Ich bin Backpacker und Programmierer und versuche mit der zweiten Fertigkeit Öffnungen in einem vollen Campingplatz zu finden. Anstatt von Grund auf zu crawlen, verwende ich das Ende-zu-Ende-Test-Framework nightwatch.js, um für mich zu navigieren.
Ich habe einen Roadblock getroffen, weil Nightwatch Schwierigkeiten hat, ein bestimmtes Element mit CSS-Selektoren zu finden.
Mein Testcode wird auf das Auswahlfeld mit #permitTypeId
klicken. Es wird sehen, dass #permitTypeId option
sichtbar ist. Es wird nicht angezeigt oder auf eine der Optionen geklickt, wenn spezifischere Werte angegeben werden. Die fünf .click()
sind allesamt CSS-Selektoren, die ich bereits ausprobiert habe. Keine der Optionen ist auf display:hidden
oder display:none
festgelegt. Ich habe auch alle oben genannten ohne das .waitForElementToBeVisible()
nur für den Fall versucht, dass das Warten das Dropdown versteckt.
Ich habe erfolgreich Optionen aus verschiedenen Dropdown-Menüs auf dieser Website erfolgreich angeklickt. Gerade dieser verursacht Kopfschmerzen.
Die Tests laufen mit dem aktuellsten Selenium Server und Firefox auf Mac Yosemite.
Nightwatch.js / Selenium wird nicht auf etwas aus einem Dropdown-Menü klicken.
Cory brachte mich dazu, über jQuery und native DOM-Manipulation nachzudenken. Versucht, diese Route zu gehen und war erfolgreich die Auswahl der richtigen Option mit Selenium% .execute()
Funktion:
Allerdings wurde das onchange
-Ereignis nicht ausgelöst.
Sah dies posten Das brachte mich dazu, über die Verwendung von Tasten und dieses nachzudenken schlug vor, mit den Pfeiltasten ein Element <select>
zu der Option zu navigieren und dann die Eingabetaste zu drücken.
Ich habe festgestellt, dass dies ein Problem mit Firefox ist. Chrome und PhantomJS funktionieren gut, indem sie <option>
-Tags anklicken.
Sie sollten in der Lage sein, auf diese Weise zu klicken
%Vor%Tags und Links css nightwatch.js