为什么我得到"元素命令无法完成,因为元素不可见"当我尝试单击WWW :: Mechanize :: PhantomJS的链接时?

时间:2017-01-20 12:03:42

标签: html perl phantomjs

我尝试使用以下代码使用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行。

我该如何解决这个问题?

0 个答案:

没有答案