Es gibt einen Knopf auf einer Web site am Ende eines Formulars, das ich nicht scheinen kann, mit WWW :: Mechanize anzuklicken. Hier wird das Bit von HTML in Bezug auf diese Schaltfläche:WWW :: Mechanize: Wie man Knopf auf seiner Zahl in Form
<input type="submit" class="saveButton" value="Login">
Als ich print $mech->find_all_inputs();
, bekomme ich diese zurück:
HTML::Form::TextInput=HASH(0x7f8f52cdc450)
HTML::Form::TextInput=HASH(0x7f8f5302b488)
HTML::Form::SubmitInput=HASH(0x7f8f52cdc108)
Die dritte ist die, die ich klicken möchten. Ich weiß nicht genau, wie ich auf diesen Knopf klicken soll, obwohl ich ihn gefunden habe. Ich habe versucht, click(field(n => 3))
, ich habe versucht, eine Variable $ senden an find_all_inputs(3)
, dann click($submit);
, und egal was, diese Schaltfläche ist nicht angeklickt.
Kann mir jemand erklären, wie man auf diesen schwer fassbaren Knopf klickt? ‚Habe mein Passwort‘ Feld des Formulars
bearbeiten (nach Frage beantwortet)
das HTML-Formular abfragen fand ich eigentlich war das Passwort für den Login in der Eingabe. Warum dieses Feld nicht für $mech->find_all_inputs()
aufkam, weiß ich seit "Login" nicht mehr. In jedem Fall bringt mich der Klick auf die Schaltfläche zur nächsten Seite. Vielen Dank!
Es scheint, dass 'Klick' funktioniert, aber ich gehe nicht auf die nächste Seite (die Taste in Frage ist eine Login-Taste, so klicken Sie auf eine andere URL, richtig? Aber '$ ua -> uri;' ist das gleiche vor und nach dem Klicken auf den Button). Ich versuchte 'my $ response = $ ua -> click();' und 'print $ response', was' HTML :: Form :: SubmitInput = HASH (0x7f8f52cdc108) 'zurückgab, weshalb ich denke,' click' funktioniert. –
Hat Ihr Mechanize-Objekt Cookies? in Erwägung ziehen, 'my $ mech = WWW :: Mechanize-> neu ( cookie_jar => HTTP :: Cookies-> neu (Datei =>" $ ENV {HOME} /. Cookies.txt ") );' um Kekse zu bekommen. Es scheint sehr unwahrscheinlich, dass Sie sich ohne einloggen könnten. – bytepusher
@bytepusher: Der 'WWW :: Mechanize'-Konstruktor verhält sich standardmäßig so, als ob Sie die Option' cookie_jar => {} 'übergeben hätten, die ein speicherinternes' HTTP :: Cookies'-Objekt erzeugt. – Borodin