您好我正在使用循环到get
各个页面。
代码:
while($stm->fetch()) {
$mech->get(**#TheURL**);
$mech->select( 'this', 'that' );
$mech->tick( 'this' => undef );
$mech->tick( 'this' => undef );
$mech->tick( 'this' => undef );
$mech->tick( 'this' => undef );
my $button = $mech->selector('input.button', single => 1);
$mech->click($csvbutton);
}
上面的代码点击按钮后下载文件。但是它会在第一次迭代后停止。
我更改了Firefox的配置以禁用下载管理器弹出窗口。
我曾收到此错误:
MozRepl::RemoteObject::Object has no function addProgressListener at `$mech->get(**#TheURL**);`
任何帮助将不胜感激。感谢。
更新
我发现它在第一次下载时卡住了,因为WWW :: Mechanize :: Firefox正在等待它没有得到的响应或回发。刚刚下载了一个文件。
$mech->click($csvbutton);
这是它停止的地方。如果我手动操作页面(即返回或转到主页或新URL),它将继续循环。所以它正在等待新的页面加载。
我如何告诉WWW :: Mechanize :: Firefox不等待响应或新页面加载?
由于
答案 0 :(得分:1)
您是否尝试点击synchronize
选项:
$mech->click( $csvbutton, { synchronize => 0 } );
答案 1 :(得分:1)
该行的格式应该是完美的形式:
$mech->click({selector => ('input.button', single => 1), synchronize => 0});
您必须使用selector =>
或xpath =>
<强>签名:强>
$mech->click({xpath/selector => 'name' ,synchonize => 0})
然后点击将不会等待网络服务器的响应。
所述