find_all_links()Perl函数找不到所有链接

时间:2012-12-05 23:02:07

标签: perl hyperlink www-mechanize

我从Perl开始,我正在尝试编写一个脚本,让我退出页面(我已经登录了一个)。 我的想法是,我正在尝试使用WWW::Mechanize中的find_link函数(我也试过WWW::Mechanize::Firefox)来查找注销链接,但它无效。 所以,我的问题是:

onmouseover 的事件,避免找到该链接?我认为WWW::Mechanize::Firefox支持javascript但也许这不正确。

<a class="hb2" href="/goform/Logout?logout=Logout" onmouseover="(window.status='Logout');
return true">Logout</a>

有没有办法做我想要的?任何帮助或建议都将受到高度赞赏。

3 个答案:

答案 0 :(得分:1)

显然我的 MozRepl (需要使用WWW :: Mechanize :: Firefox)附加组件安装不正确。 @gangabass,@ andy我检查了HTML,它似乎在源头。所以@choroba我检查了为什么WWW :: Mechanize :: Firefox的行为与WWW :: Mechanize相同,我重新安装了附件。 然后一切都很完美。非常感谢大家花时间帮助我。

答案 1 :(得分:0)

您确定源HTML中包含此HTML片段吗?我的意思是您的HTML代码片段可能是通过Javascript动态创建的,或者您的源HTML中可能有框架。

因此,请显示$mech->content()的输出以及处理此链接的代码(如上所述$mech->find_link( text => 'Logout' );应该有效)。

答案 2 :(得分:0)

您是否使用mech-dump命令行实用程序转储了该页面?试试吧。如果您的链接显示在mech-dump的输出中,那么您将错误地调用find_all_links()

如果mech-dump 显示您的链接,那么您可能要么格式错误,要么使用JavaScript在浏览器中生成HTML。