如何解决使用 WWW::Mechanize::Chrome 在当前选项卡上实现自动化
我正在尝试使用 WWW::Mechanize::Chrome 填写 Chrome 中当前活动标签中的字段。总体目标是自动执行银行转帐中涉及的一些输入操作,因此无法打开新会话和导航到页面。
这就是我所在的位置 - 测试当前选项卡上的最低控制级别:
use Log::Log4perl qw(:easy);
use WWW::Mechanize::Chrome;
Log::Log4perl->easy_init($ERROR);
my $mech = WWW::Mechanize::Chrome->new(
launch_exe => '/usr/bin/google-chrome',launch_arg => [ "--remote-debugging-port=9223" ],autoclose => 0,port => 9223,tab => 'current',);
$mech->get('https://www.reddit.com/r/perl');
$mech->eval_in_page('alert("Hello Chrome")');
my $png = $mech->content_as_png();
Chrome 开始时是这样的:
/usr/bin/google-chrome --remote-debugging-port=9223
然而,这实际上(在浏览器端)是:
- 打开一个新标签
- 没有导航到 reddit
- 没有警报
并在命令行上输出:
Can't connect without knowing the port?! 0 at ~/perl5/perlbrew/perls/perl-5.30.2/lib/site_perl/5.30.2/Chrome/DevToolsProtocol.pm line 317.
如果 Chromium 未运行,则代码运行良好(打开 Chromium,导航到 reddit,发出警报)。
文档说“将标签设置为 current
将使用当前的活动标签 - 但它似乎不起作用。
我做错了什么?
解决方法
我在带外与 WWW::Mechanize::Chrome 的作者进行了快速交谈。他说,当您启动要附加到的 Chrome 实例时,您需要设置远程调试端口。当它打开一个新的时,它会自动执行此操作。
--remote-debugging-port 9222
Here is some information 关于一直打开它。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。