Selenium 的最小 perl 脚本是什么?
What is the minimum perl script for Selenium?
我使用自制软件安装了最新版本的 geckodriver 和 chromedriver。我更喜欢前者,但如果它们有效,我愿意使用其中任何一个。我也用 cpan 控制台安装了 Selenium::Remote::Driver 模块,并且安装时没有任何警告。我目前正在使用 https://metacpan.org/pod/Selenium::Remote::Driver 上的示例代码片段。
use Selenium::Remote::Driver;
my $driver = Selenium::Remote::Driver->new;
$driver->get('http://www.google.com');
$driver->quit();
当我尝试 运行 脚本时,收到以下错误:
Selenium server did not return proper status at /Library/Perl/5.18/Selenium/Remote/Driver.pm line 544.
现在,我不知道自己在做什么。我正在使用一些可能应该弃用的网络资源。在开始之前,我是否需要手动 运行 geckodriver(或 chromedriver)?如果不是,我是否需要至少指定在我的代码中调用哪个?两者都在我的路径环境中可用。我还没有安装第三个组件吗?可能是浏览器插件?
我唯一的目标是(在这一点上)让它将网页加载到浏览器中(此时最好不要无头,这样我就可以看到它在做什么)。
虽然 Chrome-specific,但以下是最小的 Selenium 解决方案:
use FindBin qw( $RealBin );
use Selenium::Chrome qw( );
my $web_driver = Selenium::Chrome->new(
binary => "$RealBin/chromedriver.exe",
);
$web_driver->get('https://www.whosebug.com/');
$web_driver->shutdown_binary();
我想处理异常,所以我实际使用了这个:
use FindBin qw( $RealBin );
use Selenium::Chrome qw( );
use Sub::ScopeFinalizer qw( scope_finalizer );
my $web_driver;
my $guard = scope_finalizer {
if ($web_driver) {
$web_driver->shutdown_binary();
$web_driver = undef;
}
};
$web_driver = Selenium::Chrome->new(
binary => "$RealBin/chromedriver.exe",
);
$web_driver->get('https://www.whosebug.com/');
我使用自制软件安装了最新版本的 geckodriver 和 chromedriver。我更喜欢前者,但如果它们有效,我愿意使用其中任何一个。我也用 cpan 控制台安装了 Selenium::Remote::Driver 模块,并且安装时没有任何警告。我目前正在使用 https://metacpan.org/pod/Selenium::Remote::Driver 上的示例代码片段。
use Selenium::Remote::Driver;
my $driver = Selenium::Remote::Driver->new;
$driver->get('http://www.google.com');
$driver->quit();
当我尝试 运行 脚本时,收到以下错误:
Selenium server did not return proper status at /Library/Perl/5.18/Selenium/Remote/Driver.pm line 544.
现在,我不知道自己在做什么。我正在使用一些可能应该弃用的网络资源。在开始之前,我是否需要手动 运行 geckodriver(或 chromedriver)?如果不是,我是否需要至少指定在我的代码中调用哪个?两者都在我的路径环境中可用。我还没有安装第三个组件吗?可能是浏览器插件?
我唯一的目标是(在这一点上)让它将网页加载到浏览器中(此时最好不要无头,这样我就可以看到它在做什么)。
虽然 Chrome-specific,但以下是最小的 Selenium 解决方案:
use FindBin qw( $RealBin );
use Selenium::Chrome qw( );
my $web_driver = Selenium::Chrome->new(
binary => "$RealBin/chromedriver.exe",
);
$web_driver->get('https://www.whosebug.com/');
$web_driver->shutdown_binary();
我想处理异常,所以我实际使用了这个:
use FindBin qw( $RealBin );
use Selenium::Chrome qw( );
use Sub::ScopeFinalizer qw( scope_finalizer );
my $web_driver;
my $guard = scope_finalizer {
if ($web_driver) {
$web_driver->shutdown_binary();
$web_driver = undef;
}
};
$web_driver = Selenium::Chrome->new(
binary => "$RealBin/chromedriver.exe",
);
$web_driver->get('https://www.whosebug.com/');