WWW::Mechanize::Firefox超时

WWW::Mechanize::Firefox Timeout

当我尝试使用 WWW::Mechanize::Firefox 发出 ->get(URL) 请求时如何正确使用超时?

my $mech = WWW::Mechanize::Firefox->new(timeout => 10); 好像不行

至少在很大程度上可以模拟这一点。

您可以关闭 get 的同步,在这种情况下,调用应该会立即 return。然后每隔 $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;
}

存在如何准确确认每个页面的问题,但这应该提供工作超时。