我正在尝试使用以下代码登录网站
my $mech = WWW::Mechanize->new(autosave=>1);
$mech->cookie_jar(HTTP::Cookies->new());
$mech->get($url);
$mech->follow_link( text => 'Sign In');
$mech->click();
$mech->field(UserName => "$username");
$mech->field(Password => "$password");
$mech->submit();
但是在follow_link期间,href包含两个前斜线,例如//test/sso-login
)因此follow_link将其视为整个URL并且它失败如下所示
Error GETing http://test/sso-login: Can't connect to test:80 (Bad hostname)
我无法更改href,因为它是我的控制权。有没有办法克服这个问题,并使完整的URL附加此href。
答案 0 :(得分:4)
不确定。您可以在致电follow_link()
之前修改Mech正在查看的HTML:
my $html = $mech->content;
$html =~ s[//test/sso-login][http://example.com/test/sso-login]isg;
$mech->update_html( $html );
有关详细信息,请参阅documentation。在该页面上搜索“update_html”。