我想打开两个单独的标签,并在Firefox中保持打开状态。我正在使用WWW::Mechanize::Firefox
。
请找到以下代码:
#!/usr/bin/perl -w
use strict;
use WWW::Mechanize::Firefox;
my @array = <DATA>;
foreach (@array)
{
my $mech = WWW::Mechanize::Firefox->new(
activate => 1, # bring the tab to the foreground
autoclose => 0 # to prevent autoclosing of the Tab
);
$mech->get($_);
}
__DATA__
www.google.com
www.yahoo.com
上面的代码工作正常,并创建两个选项卡。但是当我创建两个对象时,我对我的方法不满意。我正在寻找一些方法来打开多个标签。我无法使用单个$mech
对象执行此操作,因此使用for循环创建了多个对象。
我已经阅读了以下文档:
WWW::Mechanize::Plugin::Display
WWW::Mechanize::Firefox::Cookbook
然而,他们似乎都没有回答这个问题。或者我可能错过了那些文档中的一些信息。问题:
WWW::Mechanize::Firefox
打开多个标签页
或其他一些相关的firefox机械化模块?怎么样?感谢。
答案 0 :(得分:1)
创建多个对象没有任何内在错误。您可能会担心内存开销。对象可能会有额外的东西(在这种情况下为localhost TCP套接字),你不应该复制。每次要执行必须在对象之间共享的逻辑操作时,您可能会发现必须遍历多个对象会很烦人。
但没有人会惊恐地退缩。 “多个对象?!你怎么敢。”
如果您想要做的只是打开多个标签,我会使用以下内容:
sub browse {
my $method = $_[1] ? 'new-window' : 'new-tab';
system firefox => -remote => "openURL($_[0],$method)"
}