Wie markiere ich Checkboxen mit selen java webdriver?
Wie kann ich die Checkboxen mit id/xpath. Gibt es eine ähnliche Methode zu wählen, die von visibletext für dropdown.
Gehen durch die Beispiele gegeben für alle anderen Fragen konnte ich nicht finden, eine geeignete Lösung zu erarbeiten, die in prägnanter Weise, dass einige Linien-oder Methode, die ich überprüfen kann, eine chekbox oder radio-button.
Jede Hilfe würde geschätzt werden.
Eine Beispiel-HTML-Seite ist unten:
<tbody>
<tr>
<td>
<span class="120927">
<input id="ctl00_CM_ctl01_chkOptions_0" type="checkbox" name="ctl00$CM$ctl01$chkOptions$0"/>
<label for="ctl00_CM_ctl01_chkOptions_0">housingmoves</label>
</span>
</td>
</tr>
<tr>
<td>
<span class="120928">
<input id="ctl00_CM_ctl01_chkOptions_1" type="checkbox" name="ctl00$CM$ctl01$chkOptions$1"/>
<label for="ctl00_CM_ctl01_chkOptions_1">Seaside & Country Homes</label>
</span>
</td>
</tr>
</tbody>
InformationsquelleAutor der Frage Manish Dwivedi | 2013-02-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Auswahl eines Kontrollkästchen ist ähnlich dem Klick auf eine Schaltfläche.
driver.findElement(By.id("idOfTheElement")).click();
tun.
Aber Sie können auch sehen, ob das Kontrollkästchen bereits aktiviert ist. Das folgende Codefragment prüft, ob das Kontrollkästchen aktiviert ist oder nicht. Wenn es nicht angewählt ist, dann wählt es.
InformationsquelleAutor der Antwort Code Enthusiastic
Merke ich, dass diese Frage schon ein paar Monate, aber ich fand es einfach und traf das gleiche Problem und eine Lösung gefunden. Es scheint, dass die DH-Fahrer interagiert nicht mit allem, was in der gleichen Weise die anderen Fahrer tun und Checkboxen ist einer dieser Fälle.
Den trick mit den Checkboxen ist, schicken die Space-Taste statt mit klicken Sie (müssen nur auf IE), so wie in C#:
InformationsquelleAutor der Antwort Scott Crowe
Erhalten Sie die checkbox für "Seaside & Country Häuser", verwenden Sie das XPath:
Erhalten Sie die checkbox für 'housingmoves', verwenden Sie diese XPath:
Das Prinzip hier ist, um das Etikett mit dem text, den Sie möchten, dann Holen Sie das Kontrollkästchen, das ist vor das Etikett, da zu sein scheint, wie dein HTML ist gelegt.
Bekommen Sie alle Kontrollkästchen, starten Sie ein wenig höher, und dann arbeiten nach unten, so ist zu sagen, bekommt den Tisch, und dann bekommen die checkbox innerhalb einer Zeitspanne:
InformationsquelleAutor der Antwort Arran
Lösung für C#
InformationsquelleAutor der Antwort Arnab
Einer Lösung mit WebDriver und C# ist unten. Die zentrale Idee ist to get die ID der checkbox aus den Bezeichnungen' 'für' - Attribut, und verwenden, identifizieren Sie die checkbox.
Wird der code auch setzen den Zustand einer checkbox nur, wenn es geändert werden muss.
InformationsquelleAutor der Antwort Faiz
Können Sie den folgenden code verwenden:
mein html-code war wie folgt :
InformationsquelleAutor der Antwort Maria
Wenn Sie möchten, klicken Sie auf alle Kontrollkästchen auf einmal, eine Methode, wie dies zu tun:
InformationsquelleAutor der Antwort Tedesco
Diese sollen helfen -
Können Sie pass-id auch.
Wenn Sie wollen, so etwas wie sichtbarer text können Sie "element suchen" nach Namen wenn Sie die Namen haben.
InformationsquelleAutor der Antwort some_other_guy
Läuft dieser Ansatz wird in der Tat Umschalten der checkbox;
.isSelected()
im java/Selenium2 offenbar immer zurückfalse
[mindestens mit der java/selenium/Firefox-Versionen getestet habe ich es mit].Von der richtigen Auswahl der checkbox nicht, wo das problem liegt -- es ist vielmehr die Unterscheidung zwischen korrekt den ursprünglichen Zustand, um unnötig zu vermeiden, re-Klick auf ein bereits markiertes Feld.
InformationsquelleAutor der Antwort Dave
Auswählen der check-box verwenden
"WebElement"
Klasse. Für den Betrieb auf drop-down-Liste verwenden"Select"
Klasse.InformationsquelleAutor der Antwort Khan
Schritt 1:
Der Object Locator verwendet werden soll, hier ist XPath. So Leiten Sie den XPath für die 2 Kontrollkästchen.
Schritt 2:
Durchzuführen, Klicken Sie auf die Kontrollkästchen
InformationsquelleAutor der Antwort user3487861
Für Teilweise Übereinstimmung die folgenden
InformationsquelleAutor der Antwort RCR
Hier ist die C# - version von Scott Crowe Antwort. Ich fand, dass beide IEDriver und ChromeDriver reagierte auf senden-Taste.Raum anstelle von einem Klick auf die checkbox.
Dank an Scott für die Zusendung in die richtige Richtung.
InformationsquelleAutor der Antwort dmeehan
Vielleicht ein guter Ausgangspunkt:
InformationsquelleAutor der Antwort Milky
Ich habe versucht, mit verschiedenen Ansatz, aber nichts funktionierte. Ich habe immer auf "Nicht-wählen Sie "element" oder ElementNotVisibleException. Ich war in der Lage zu finden, den Eingang, konnte aber nicht überprüfen. Nun, ich bin ein Klick auf das div enthält die checkbox und es funktioniert mit folgendem HTML-CSS(basierend auf bootstrap).
Dies ist der code für WebDriver
In diesem Ansatz gebe ich die Artikel-id als id für das div-Element und fügen Sie auch ein Attribut für td mit id. Einmal finde ich die td das Element, das geprüft werden muss, finde ich das div vor, dass td und klicken Sie darauf. Wir können auch verwenden Sie die xpath-Abfrage, unterstützt vor (hier ist das Beispiel http://learn-automation.com/how-to-write-dynamic-xpath-in-selenium/).
InformationsquelleAutor der Antwort messed-up
Hier folgenden code erhalten zunächst alle checkboxs Gegenwart in die Seite, und deaktivieren Sie alle überprüft-box.
InformationsquelleAutor der Antwort Puneet Ghildiyal
Fand ich, dass manchmal JavaScript erlaubt mir nicht, zu klicken Sie auf die checkbox, da war die Arbeit mit dem element
onchange
Veranstaltung.Und dieser Satz hilft mir, mich zu erlauben, das problem:
InformationsquelleAutor der Antwort ra1x