Thread PopUp aus WWW::Mechanize Script "beantworten" (42 answers)
Opened by roli at 2010-03-11 15:52

bianca
 2010-03-12 14:17
#134582 #134582
User since
2009-09-13
7016 Artikel
BenutzerIn

user image
roli, ich hab Dir mal ein funktionierendes Beispiel gebaut:

testform.html mit Pseudo-Button:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Testform</title>
</head>
<body>
<form action="testform.pl">
<input type="hidden" name="testhidden1" value="foo">
<input type="text" name="testtext1" value="bar">
<input type="text" name="testtext2" value="bar2">
<input type="image" name="Sichern" src="/images/plus.png" onclick="return confirm('Wollen Sie wirklich speichern?')" />
</form>
</body>
</html>


testform.pl, damit man sieht, was übermittelt wurde:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/usr/bin/perl -w
use strict;
use warnings;
require 5.8.0;
use CGI;
use Data::Dumper;
use Fcntl qw (:DEFAULT :flock);
my $q = CGI -> new;
print $q -> header . 'Hallo!';
print '<pre>';
foreach my $var ($q->param) {
        print "$var => " . $q->param($var) . "\n";
}
print '</pre>';


Und am Ende das ganze per Mechanize:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#!/usr/bin/perl -w
use strict;
use warnings;
use WWW::Mechanize;     # Benutze 1.58 auf Strawberry 5.10.1

my $start_url = 'http://www.url.de/testform.html';      # <= Bitte anpassen!!
my ($mech,$response,$data);

$mech = WWW::Mechanize -> new ( quiet => 1 );
$response = $mech -> get ($start_url);
if (defined $response) {
        $data = $response -> content;
        $response = $mech -> form_number (1);
        $mech -> field ('testtext1','test1');
        $mech -> field ('testtext2','test2');
        # usw. für jedes Feld
        $response = $mech -> submit_form ();
        if (defined $response) {
                $data = $response -> content;
                print "Bin drin:\n*****\n$data\n*****\n";
        }
        else {
                die "Submit fehlgeschlagen!\n";
        }
}
else {
        die "$start_url ist nicht erreichbar\n";
}
10 print "Hallo"
20 goto 10

View full thread PopUp aus WWW::Mechanize Script "beantworten"