keplerbr has asked for the wisdom of the Perl Monks concerning the following question:

I'm using two computers to test a exactly the same Perl code. On a computer works perfectly, but on the other computer I get the following error when starting the code: Selenium server did not return proper status at (eval 239) line 61

Simplifying the code, the error happens in this simple script:

#!usr/bin/env perl use common::sense; use WWW::Mechanize::PhantomJS; my $phantom = WWW::Mechanize::PhantomJS->new(); __END__

Both are using version 0.10 of PhantomJS. The computer that work is Windows 8.1, and the computer that does not work is Windows 7.

Question in Stackoverflow

Replies are listed 'Best First'.
Re: Error “selenium server did not return proper status” when starts PhantomJS
by aitap (Curate) on Oct 19, 2014 at 06:49 UTC

    As far as I understand, "Selenium server did not return proper status" happens in the Selenium::Remote::RemoteConnection class. Here is how we can try to get more information on this problem:

    1. perldoc -l Selenium::Remote::RemoteConnection to display the file name of the module
    2. perl -d yourprogram.pl
    3. f path/to/Selenium/Remote/RemoteConnection.pm
    4. Use l command to view the source and b command to place a breakpoint before croak "Selenium server did not return proper status";
    5. c to run the program; after it stops on the brakepoint, use x to examine values of variables and expressions. Does Selenium client really connect where it is supposed to (localhost:8190)? What is returned in $status object?

    I had a problem with Selenium client incorrectly guessing that I have a webdriver running and trying to connect to my I2P instance.

      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

        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).