2012-11-12 201 views
3

我在浏览器中安装了MozRepl,并设置为在启动时启动并接受外部连接。WWW :: Mechanize :: Firefox故障排除

所以我的问题如下 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浏览器还可以启动它不会影响代码的顺序,使得机械化:: Firefox的实例可以创建操纵浏览器?

回答

0

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

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

最简单的事情就是通过睡眠等待30秒,或者您启动一个while循环等待它响应。

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

telnet 192.168.1.23 4242 
telnet 127.0.0.1 4242 
+0

当我使用系统/ exec来启动Firefox,它成功地推出火狐但在此之后什么也没有发生,使用EXEC告诉我,行了'我的$ mech = WWW :: Mechanize :: Firefox-> new(ssl_opts => {verify_hostname => 0});'无法访问。我能做些什么来确保可以达到这条线。 –

+0

出于某种原因,我的系统命令在启动firefox后没有返回 –