in reply to Re: Error “selenium server did not return proper status” when starts PhantomJS
in thread Error “selenium server did not return proper status” when starts PhantomJS

Apparently, I had problems with the command "f".

C:\Users\macabeus>cd C:\Users\macabeus\Desktop\bvubot C:\Users\macabeus\Desktop\bvubot>perldoc -l Selenium::Remote::RemoteCo +nnection C:\Strawberry\perl\site\lib\Selenium\Remote\RemoteConnection.pm C:\Users\macabeus\Desktop\bvubot>perl -d test.pl Loading DB routines from perl5db.pl version 1.44 Editor support available. Enter h or 'h h' for help, or 'perldoc perldebug' for more help. main::(test.pl:6): my $phantom = WWW::Mechanize::PhantomJS->new(l +og => 'DEB UG'); DB<1> f C:\Strawberry\perl\site\lib\Selenium\Remote\RemoteConnection +.pm No file matching 'C:\Strawberry\perl\site\lib\Selenium\Remote\RemoteCo +nnection.p m' is loaded. DB<2> f path/to/Selenium/Remote/RemoteConnection.pm No file matching 'path/to/Selenium/Remote/RemoteConnection.pm' is load +ed. DB<3> l 6==> my $phantom = WWW::Mechanize::PhantomJS->new(log => 'DEBUG'); 7 8: 1; DB<3> b DB<3> b 7 Line 7 not breakable. DB<4> b 8 DB<5> c [DEBUG - 2014-10-19T15:37:47.819Z] Config - config.init - {"ip":"127.0 +.0.1","por t":"8910","hub":null,"logFile":null,"logLevel":"DEBUG","logColor":fals +e} [INFO - 2014-10-19T15:37:47.897Z] GhostDriver - Main - running on por +t 8910 Selenium server did not return proper status at (eval 54)[C:/Strawberr +y/perl/ven dor/lib/Sub/Quote.pm:5] line 61. at C:/Strawberry/perl/site/lib/WWW/Mechanize/PhantomJS.pm line 214. WWW::Mechanize::PhantomJS::new("WWW::Mechanize::PhantomJS", "l +og", "DEBU G") called at test.pl line 6 Debugged program terminated. Use q to quit or R to restart, use o inhibit_exit to avoid stopping after program termination, h q, h R or h o to get additional info. DB<5> x 0 0 DB<5> q C:\Users\macabeus\Desktop\bvubot>

I'm unsure how I can test the connection, because the program results in problems during the construction of the object of PhantomJS

  • Comment on Re^2: Error “selenium server did not return proper status” when starts PhantomJS
  • Download Code

Replies are listed 'Best First'.
Re^3: Error “selenium server did not return proper status” when starts PhantomJS
by aitap (Curate) on Oct 19, 2014 at 18:46 UTC
    No file matching 'C:\Strawberry\perl\site\lib\Selenium\Remote\RemoteConnection.pm' is loaded.
    Does f C:/Strawberry/perl/site/lib/Selenium/Remote/RemoteConnection.pm not work, either? The idea was to examine the variables $self and $status near the place of the error (sub BUILD in RemoteConnection.pm, lines 44-49 in my installation).

      Sorry for slow poke ...

      So I stumbled accross this thread because I have the same problem. And an ugly fix/work-around. Can't do any better because I don't know anything about perl.

      1. Open StrawberryPerl\perl\vendor\lib\LWP\Protocol\http.pm
      2. Find sub _new_socket
      3. Set $host = '127.0.0.1' (maybe '::1' works, too?)

      How did I find this solution? The debugging helped. The error reported by IO::Socket::INET is "bad address". Originally the host was "localhost". I have no idea why "localhost" is a bad address but "127.0.0.1" works.

      For reference:

      • nslookup localhost = no result
      • ping localhost = ::1
      • http://localhost:8910/ in browser opens as expected
      • Windows 10, 64bit
      • perl v5.22.0 MSWin32-x64-multi-thread
      • Several network cards/adapters but only one enabled
      • IPv4 and IPv6
      • Default Windows Firewall
      • Avast Free AntiVirus
        I found this fix as well, but it caused other issues as it affected everything. I found a better solution was to add this into ../Selenium/Remote/RemoteConnection.pm

        Around line 103, before

        my $request = HTTP::Request->new($method, $fullurl, $header, $cont +ent);
        Add in this line:
        $fullurl =~ s/localhost/127.0.0.1/;
        It accomplishes the same thing but limits the effect to Selenium only.