3

我在浏览器中安装了 MozRepl,并设置为在启动时启动并接受外部连接。

所以我的问题如下 1)将简单地运行代码my $mech = WWW::Mechanize::Firefox->new();启动Firefox浏览器?

2) 我已将 MozRepl 设置为接受外部连接,但是,当 firefox 未启动时,当我的脚本到达 1) 中的代码时,它会告诉我unable to connect, problem connecting to localhost, on port 4242。我尝试通过telnet localhost 4242未启动的Firefox浏览器进行调试。它也给了我这个错误Could not open connection to the host, on port 4242: Connect failed

我应该期待这个结果吗?

3) 鉴于我在上面遇到的困难,我决定在创建 mechanize::firefox 实例之前使用 system() 来启动浏览器。浏览器能够启动,但是它永远不会到达要创建 mechanize::firefox 实例的代码。

#where i manually fire up firefox.
system('"C:\Program Files\Mozilla Firefox\firefox.exe"'); 

my $mech = WWW::Mechanize::Firefox->new(ssl_opts => { verify_hostname => 0});
$mech->get( 'https://192.168.1.23' );   

我该怎么做才能确保可以启动 firefox 浏览器但它不会影响代码的顺序,以便可以创建 mechanize::firefox 实例来操作浏览器?

4

1 回答 1

0

您必须在测试前启动浏览器,它不会自动启动。

我需要一些时间来启动 firefox,但系统会在 firefox 启动后立即返回。我需要几秒钟来初始化它的所有插件等。

最简单的方法是通过 sleep 等待 30 秒,或者您启动一个 while 循环以等待它响应。

防火墙规则可能会阻止您访问 mozrepl。默认端口是 4242。通过 telnet 检查端口:

telnet 192.168.1.23 4242
telnet 127.0.0.1 4242
于 2012-11-12T10:04:39.073 回答