Verwenden Sie Mechanisieren, um Formular ohne Kontrollturnier einzureichen

Ich versuche zu verwenden Mechanisieren für Python, um ein Formular einzureichen, aber die Formularsteuerung, die ich ausfüllen muss, hat keinen Namen, der ihm zugeordnet ist.

<POST https://sample.com/anExample multipart/form-data <HiddenControl(post_authenticity_token=) (readonly)> <HiddenControl(iframe_callback=) (readonly)> <TextareaControl(<None>=)>> 

Die Kontrolle, die ich bearbeite, ist die letzte Steuerung im obigen Objekt, <TextareaControl(<None>=)> .

  • Pythonmechanisierungsformen () irren
  • Python mechanisieren Javascript
  • Python Mechanize Formular auswählen FormNotFoundError
  • Mechanisieren wählen aus Dropdown
  • Wie mache ich Mechanisiere warten auf Web-Seite 'volle' Last?
  • Wie kann ich mechanize.Browser () Cookies speichern?
  • Ich habe mir die Dokumentation angesehen und kann nicht scheinen, einen Weg zu finden, einen Wert zu diesem Steuerelement zuzuweisen, da es keinen Namen hat, der mit ihm verbunden ist.

      forms = [f for f in br.forms()] print forms[2].controls[5].name 

    Ausgänge "Keine"

  • Generiere N positive ganze Zahlen innerhalb eines Bereichs, der bis zu einer Gesamtmenge in Python addiert
  • (Python) Stuck auf Skipping-Bereich Werte für die Summe einer Randzahl-Liste
  • Pandas: Neue Spalte in df mit zufälligen Ganzzahlen aus Reichweite erstellen
  • Wie benutzt man einen Dezimalbereich () Schrittwert?
  • Vollständige Zufallszahl in Python
  • Schreibzeilen in Spalten in Datei in Python
  • One Solution collect form web for “Verwenden Sie Mechanisieren, um Formular ohne Kontrollturnier einzureichen”

    Also, ich gebe dir, dieser war ziemlich hart, um herauszufinden. Hatte buchstäblich einen Blick auf den mechanize selbst, um herauszufinden. Leider konnte ich es nicht sicher auf einem tatsächlichen Formulareinzelteil ohne Namensattribut testen, obwohl ich das tun kann, wenn du die Seite verstellst, die du zu ziehen suchst, oder du kannst es selbst machen.

    Die Formgegenstände ehrlich sind nicht so gut für die Usability implementiert. Der einzige Weg, den ich für Sie sehen kann, bearbeitet den Wert eines namenlosen Formulars, indem er die Methode set_value des Formulars verwendet :

     class HTMLForm: # <...> set_value(value, name=None, type=None, kind=None, id=None, nr=None, by_label=False, # by_label is deprecated label=None) 

    Also, was Sie hier tun, um die Kontrolle, die Sie suchen, ist mit dem nr Argument zu greifen, mit dem Index der Kontrolle in der Form. Leider kannst du keine negativen Ganzzahlen verwenden, um Kontrollen von hinten zu greifen, also um die letzte Form zu nr=len(myform.controls)-1 musst du etwas in der Linie von nr=len(myform.controls)-1 .

    In jedem Fall, was Sie hier tun können, ist Gebrauch, dass set_value Methode, und Sie sollten als solche gesetzt werden:

     forms[2].set_value("LOOK!!!! I SET THE VALUE OF THIS UNNAMED CONTROL!", nr=5) 

    Und das sollte für dich arbeiten Lass mich wissen, wie es geht

    Python ist die beste Programmiersprache der Welt.