使用 perl Selenium::Remote::Driver 执行 javascript 时出错

问题描述 投票:0回答:1

我正在探索 Selenium::Remote::Driver - 特别是运行 javascript。

但是,在运行这个过程中 - 我认为这几乎是文档页面中的示例:

use FindBin          qw( $RealBin );
use Selenium::Chrome qw( );

$\ = "\n"; $, = "\t"; 

my $web_driver = Selenium::Chrome->new(
   binary => "/usr/bin/chromedriver",
);

print $web_driver->has_javascript;

$web_driver->get($ARGV[0]);

my $script = q{
       var arg1 = arguments[0];
       var elem = window.document.findElementById(arg1);
      return elem;
   };
my $elem = $web_driver->execute_script($script,'hnmain');
print $elem;

我收到此错误:

Error while executing command: javascript error: javascript error: window.document.findElementById is not a function
  (Session info: chrome=120.0.6099.216) at /home/simone/perl5/perlbrew/perls/perl-5.30.2/lib/site_perl/5.30.2/Selenium/Remote/Driver.pm line 411.
 at /home/simone/perl5/perlbrew/perls/perl-5.30.2/lib/site_perl/5.30.2/Selenium/Remote/Driver.pm line 361.

这是为什么呢?我做错了什么?

带有

print $web_driver->has_javascript;
的行打印真实值。

javascript perl selenium-webdriver
1个回答
0
投票
findElementById

应该是

getElementById
© www.soinside.com 2019 - 2024. All rights reserved.