1

我有一个需要更新的网页及其经过身份验证的网页。当我尝试访问该网页时,会打开一个弹出窗口,要求输入用户名和密码。如何在弹出窗口中提供用户名和密码。我编写了以下代码,但它给出了“未经授权”的错误消息。当我手动提供链接时,会打开一个弹出窗口,然后单击取消,出现相同的“未经授权”消息。如何更改我的以下代码以在弹出窗口上提供用户名和密码,然后单击弹出窗口上的确定按钮。

#!/usr/bin/perl
use LWP::UserAgent;
use WWW::Mechanize;
use HTTP::Cookies;
use Crypt::SSLeay;
use strict;
use warnings;

my $username="sqar";
my $password="Pal500";
my $agent = WWW::Mechanize->new(autocheck => [1]);
my $url = 'http://example.com/content/Jen%20Automation.doc';
$agent->get($url);
$agent->field("os_username", $username);
$agent->field("os_password", $password);
$agent->submit();
print "AFter login\n";
my @links = $agent->find_all_links();

foreach $lin(@links){

    unless ($lin->[0] =~ /^http?:\/\//i) {
            $lin->[0] = "$url" . $lin->[0];
    }
    print "$lin->[0]" ;
    print "\n";
}

弹出窗口显示消息:

WebDAV 服务器上的服务器 example.com 需要用户名和密码

以及用于输入用户名和密码的文本字段。

4

1 回答 1

2

尝试使用 WWW::Mechanize 中的 credentials() 方法。

$agent->credentials( $username, $password );
于 2013-09-03T09:24:48.367 回答