@links数组包含各种URL。根据以下代码,首先在Firefox中打开www.google.com。然后在进入forloop时,firefox被杀死; @links数组中的第一个URL被打开。在第二次进入forloop时,第二个URL在新选项卡中打开,之后浏览器被杀死。但我需要先每次进入forloop时杀死firefox,然后在新的浏览器窗口中打开URL。请帮助。
system("start https://www.google.com");
for($i=0;$i<@links;$i++)
{
system("taskkill /im firefox.exe");
system("start $links[$i]");
}
答案 0 :(得分:1)
MozRepl::RemoteObject提供更低级别的访问权限。
答案 1 :(得分:0)
尝试这样做:
system("start https://www.google.com");
foreach my $link (@links) {
system("taskkill /im firefox.exe");
system("start $link");
}
这是错误的:
for($i=0;$i<@links;$i++)
如果你想像这样迭代,请使用:
for ($i=0; $i<$#links; $i++)
答案 2 :(得分:0)
taskkill
向一个或多个进程发送信号并立即返回。信令流程可能需要几毫秒才能实际关闭,因此请给您的流程一些时间来响应kill信号:
system("taskkill /im firefox.exe");
sleep 1;
system("start $links[$i]");
答案 3 :(得分:0)
尝试在命令上使用open来获取(然后杀死)pid。
如果你喜欢循环,就把它扔出去......
for(0..$#links) {
my $item = $links[$_];
}
正如所说,你应该使用WWW :: Mechanize :: Firefox