我尝试使用以下代码使用WWW :: Mechanize :: PhantomJS点击页面上的多个链接:
my $mech = WWW::Mechanize::PhantomJS -> new(
phantomjs_arg => ['--ssl-protocol=any'],
ignore_ssl_errors => 1
);
my @links = $mech->xpath('//div[@class="allLinks"]//a');
my $data=$mech->content;;
foreach my $link ( @links ) {
$mech->click( $link );
my @spans = $mech->xpath( '//span[@class="CollapsibleData"]' );
my $i = 1;
foreach my $id ( @spans ) {
$mech->click( $id );
print "\n===$id===\n";
}
print "\n====span Loop End===\n";
sleep(2);
my $png = $mech->content_as_png();
$obj_helper->writeFileNew( "data_$link.png" , $png );
}
print "\n====div Loop End===\n";
但是我收到一条错误消息:
执行命令时出错:clickElement:无法完成元素命令,因为该元素在页面上不可见:{" errorMessage":"元素当前不可见,可能不会被操纵","请求":{"标题":{"接受":" application / json","连接":" TE,关闭","内容长度":" 2","内容类型":&#34 ;应用/ JSON;字符集= UTF-8""主机":"本地主机:8929"" TE":"放气,的gzip; Q = 0.3& #34;"用户代理":"的libwww-perl的/ 6.15"}" httpVersion":" 1.1",& #34;方法":" POST""后":" {}"" URL":" /点击"" urlParsed" {"锚":"""查询":"&#34 ;,"文件":"单击""目录":" /""路径":&# 34; /点击""相对于":" /点击""端口":"""宿主#34;:"""密码":"""使用者":"",& #34; USERINFO":"""权威":"""协议":"&# 34;,"源":" /点击"" queryKey":{},"大块":["单击&# 34;]}," urlOriginal":" / session / b96c4cf0-df02-11e6-9e12-8b1b42343ae4 / element /:wdc:1484911359717 / click"}} / usr / local / share / perl / 5.22.1 / Selenium / Remote / Driver.pm第313行。 在/usr/local/share/perl/5.22.1/Selenium/Remote/Driver.pm第313行。
我该如何解决这个问题?