【发布时间】:2018-10-06 01:52:20
【问题描述】:
我正在使用WWW::Mechanize::Firefox 并尝试像这样使用synchronize 方法:
$mech->get('http://example.com/wp-login.php');
$mech->submit_form( with_fields => {log => 'admin', pwd => 'password'});
$self->synchronize( 'DOMContentLoaded', sub {print Dumper($self->title()); });
exit;
打印新加载页面的标题,但脚本只是挂起。它永远不会退出。我错过了什么?
【问题讨论】:
-
DOMConentLoaded应该是DOMContentLoaded。另外,请注意,您提供的回调通常应该是一个会引发给定事件的操作(例如对click的调用)。显然,一个简单的print语句不会那样做。你想达到什么目的? -
我想在没有
sleep命令的情况下执行下一个操作之前等待页面加载。 -
接下来的动作是检查页面的标题,看是否登录成功。如果我不
sleep,它会返回登录页面的标题。 -
@StevieD:尝试在匿名子例程中调用
submit_form,并将print移动到synchronize调用之后。这至少是它应该工作的方式。我在平板电脑上无法为您编写代码 -
@StevieD 这是怎么回事?我很想知道答案是否有效,就像它们对我一样。
标签: perl www-mechanize-firefox