如果我試圖使用WWW::Mechanize::Firefox
發出->get(URL)
請求,我該如何正確使用超時?WWW :: Mechanize :: Firefox超時
my $mech = WWW::Mechanize::Firefox->new(timeout => 10);
似乎並沒有工作
如果我試圖使用WWW::Mechanize::Firefox
發出->get(URL)
請求,我該如何正確使用超時?WWW :: Mechanize :: Firefox超時
my $mech = WWW::Mechanize::Firefox->new(timeout => 10);
似乎並沒有工作
它可以模擬這個,至少有一個良好的程度。
您可以關閉get
的同步,在這種情況下,應立即返回呼叫。然後輪詢每個$sleep_time
,直到超時,並測試頁面是否完成。睡眠允許所有其他良好的頁面完成,因此根據需要設置$sleep_time
。
my $timeout = 10;
my $sleep_time = 1;
my $page = get($url, synchronize => 0);
for (1..$timeout) {
# Test some page property that will confirm that it loaded
last if $page->title eq $expected_title;
sleep $sleep_time;
}
存在如何確切確認每個頁面的問題,但這應提供工作超時。
我看到這是一個較舊的帖子,但對於簡單超時的想法可能會有用。 – zdim
[你不是第一個想知道這個的。](http://stackoverflow.com/q/22311475/176646)不幸的是,它似乎不支持W :: M :: F ,所以你可能必須使用['alarm'](http://perldoc.perl.org/functions/alarm.html)來實現超時。 – ThisSuitIsBlackNot