Twill - wie mehrere wählt mit gleichen Namen wählen
-
04-10-2019 - |
Frage
Ich verwende Köper und Python einen Web-Crawler zu schreiben. showforms () zurückkehrt
Form name=customRatesForm (#1)
## ## __Name__________________ __Type___ __ID________ __Value__________________
10 originState hidden originState TN
11 destState hidden destState IL
12 originZip text originZip 37130
13 destZip text destZip 60602
16 classes select classes1 ['0000'] of ['0000', '0500', '0550', ...
17 weight text weight1 600
18 weight text weight2
19 weight text weight3
20 weight text weight4
30 1 submit submi ... submit
Ich habe die meisten der Zeilen herausgenommen, um es einfacher zu lesen. Mein Problem ist, dass es tatsächlich 12 wählt und alle von ihnen haben den Namen ‚Klassen‘. Diese gehen durch CGI als Liste. Allerdings scheint Twill nicht in der Lage, zwischen ihnen zu unterscheiden. Auch, wenn ich laufe
fv('1', 'classes', '0500')
ich die folgende Fehlermeldung erhalten:
_mechanize_dist.ClientForm.AmbiguityError: id=None name='0500' label=None
Ich habe ein paar Abhilfen versucht, einschließlich der wählt mit ihren IDs umbenennen und dann die Funktion Umschreiben senden Sie einen jQuery-Selektor zu verwenden, und weisen Sie ihr ‚name‘ Attribut zurück in ‚Klassen‘:
$('.myclasses').attr('name', 'classes');
, wenn ich das im Browser zu sehen, so scheint es, sie neu zuzuweisen, wie erwartet. Allerdings Header des Köper noch zeigen sie mit dem Namen ‚klassen1‘ als Vorlage, ‚classes2‘, etc.
Jede Hilfe wäre sehr geschätzt. Ich bin aus den Abhilfen, die ich kenne. Da dies nicht meine Seite ist, bin ich von ihrem Controller der Erwartungen einer Liste für die ‚Klassen‘ wählt gebunden.
Lösung
soweit ich bis jetzt gefunden habe, gibt es keine Möglichkeit, dies mit Köper zu tun. Jede Lösung wird eine Abhilfe außerhalb von Köper sein.