Thread WWW::Mechanize + Radiobutton (2 answers)
Opened by skontox at 2004-06-24 03:36

coax
 2004-06-24 06:51
#29282 #29282
User since
2003-08-11
457 Artikel
BenutzerIn
[default_avatar]
Erstmal die Website holen
Code: (dl )
1
2
my $mech = new WWW::Mechanize;
$mech->get('http://www.example.org/');


Wenn du nun mehrere Formulare auf deiner Website hast und der Radiobutton nicht gerade im ersten Formular liegt,
musst du zuerst einmal das Formular ueber die Nummer oder den Namen als aktives Formular waehlen.
Code: (dl )
1
2
3
$mech->form_number(2); # zweites Formular

$mech->form_name('suche'); # Suchformular


Dann kannst du auch, wenn die Radiobutton-Gruppe im zweiten Formular als Namen 'radio_b' hat, mit
Code: (dl )
$mech->field('radio_n', 2);

auf den Wert 2 setzen.

Mit set-visible() kannst du die Formularfelder der Reihe nach ausfuellen
Wuerde das Formular aus zwei Textfeldern (text1 und text2), einen Radiobutton (radio1),
einen Textfeld (text3) und noch einen Radiobutton (radio2) bestehen, dann wuerden nach
Code: (dl )
$mech->set_visible('abc', 'def', 2, 'ghi', 4);

die Formularfelder so gesetzt sein:
text1:abc  text2:def  text3:ghi  radio1:2  radio2:4

Code: (dl )
1
2
# nur radio1 und radio2 setzen
$mech->set_visible(['radio' => 2], ['radio' => 4]);

radio1:2 radio2:4

Die skalaren Parameter stehen fuer Formularfelder jeden Typs, anonyme Arrays haben als
erstes Element den Typ des Formularfest (radio, textfield, checkbox...) und als
zweites Element den Wert auf den es gesetzt werden soll.

Ich weisz ja nicht was du dann mit der Website anstellst (vielleicht liegt ja auch da der Fehler),
so koenntest du dann den HTML-Content zum Beispiel ausgeben:
Code: (dl )
1
2
$mech->submit();
print $mech->content();


Grusz Christian.
,,Das perlt aber heute wieder...'' -- Dittsche

View full thread WWW::Mechanize + Radiobutton