Selenium in Python verwenden, um auf ein Optionsfeld zu klicken / auszuwählen

8

Ich versuche, aus einer Liste von 3 Tasten auszuwählen, finde aber keine Möglichkeit, sie auszuwählen. Unten ist der HTML, mit dem ich arbeite.

%Vor%

Ich kann es finden, indem ich den folgenden Code benutze:

%Vor%

Dies gibt aus: SRF, COM, MOT

Aber ich möchte ChoiceOne auswählen. (Um es zu klicken) Wie mache ich das?

    
Das Bruno 24.01.2014, 00:22
quelle

4 Antworten

27

Verwenden Sie CSS Selector oder XPath, um direkt nach value attribute auszuwählen, und klicken Sie dann darauf.

%Vor%

Korrekturen (aber OP sollte lernen, wie man in der Dokumentation nachschaut)

  • In der Python-Bindung ist find_elements_by_css nicht vorhanden, sie heißt find_elements_by_css_selector . Man sollte in der Lage sein, die Ausnahmebotschaft anzuschauen und in die Dokumentation hier zurückzuschauen und herauszufinden, warum.
  • Beachten Sie den Unterschied zwischen find_element_by_css_selector und find_elements_by_css_selector ? Der erste findet das erste übereinstimmende Element, der zweite findet eine Liste, daher müssen Sie [0] zum Indexieren verwenden. Hier finden Sie die API-Dokumentation. Der Grund, warum ich letzteres benutze, ist, weil ich deinen Code kopiert habe, was ich nicht sollte.
Yi Zeng 24.01.2014, 00:26
quelle
0

In Ihrer for-Schleife können Sie die Klick-Methode verwenden.

%Vor%     
aidnani8 24.01.2014 01:00
quelle
0
%Vor%

Das war die Lösung. Ich bekam Fehler ohne die [0] dort, dass eine Liste kein click () Attribut hat (obwohl es nur 1 Übereinstimmung gab). Danke für die Hilfe user1177636!

    
Das Bruno 24.01.2014 17:24
quelle
0

find_elements_by_css_selector hat für mich funktioniert,

%Vor%     
praba230890 16.05.2015 13:44
quelle