in reply to Re^3: Problem using MozRepl and MozRepl::RemoteObject
in thread Problem using MozRepl and MozRepl::RemoteObject

Thanks Corion.
I followed your advice and I again tried to do what I wanted with WWW :: Mechanize :: Firefox.
Indeed, it is possible to do many things with this module.
For example, I have automatically completed the username and password fields on a form to be authenticated on a site.
It's true that it works pretty well.
However, I encounter the same problem when using the MozRepl module, whith the following error message :
"command timed-out at C:/Perl/site/lib/MozRepl/Client.pm line 186"
First, il means that WWW::Mechanize::Firefox uses MozRepl.
Then, I have to precise that this message isn't displayed every time I run the script.
But, with some pages, it is displayed automatically.
Moreover, in this case, a dialog box displays a message saying that the script https://path_to_script.js seems not to response and asks if you want to stop it.
To resolve this problem, is there a way to change the value of this timeout ?
Or, is it possible to avoid running this script, before the page is loaded ?
Another problem, for pages with a lot of javascript, loading time is sometimes long. How can we improve this?
cf006

  • Comment on Re^4: Problem using MozRepl and MozRepl::RemoteObject

Replies are listed 'Best First'.
Re^5: Problem using MozRepl and MozRepl::RemoteObject
by Corion (Patriarch) on Nov 11, 2013 at 17:06 UTC

    There is no convenient way to set the timeout of MozRepl::Client through WWW::Mechanize::Firefox. The least inconvenient way is to set $ENV{MOZREPL_TIMEOUT} before constructing your instance of WWW::Mechanize::Firefox, I guess. The more inconvenient way involves reaching down to

    $mech->repl->repl->client->{telnet}->timeout(60)

    This is not pretty, but should allow you to set the timeout.

    There is no convenient way with WWW::Mechanize::Firefox to block scripts from loading. Have you looked at an ad blocker?

      Have you looked at an ad blocker?

      I second this notion; some pages have so much dynamic-advertisement-junk-infinite-loop (400MB worth) they're unbrowsable without an ad-blocker

      Thanks Corion

      I see roughly what you mean.
      About your first solution, how do I give the value :
      $ENV{MOZREPL_TIMEOUT} = 60; # ?

      About the second, is it normal to repeat 'repl->' in the command ?
      What is the default setting for timeout ?
      For the latter, what do you mean by 'an ad blocker'?

      cf006
        $ENV{MOZREPL_TIMEOUT}= 60;

        is plain Perl code. Maybe it is time to acquaint yourself with special Perl variables as described in perlvar?

        I also did try my suggestion before posting it, so the repetition of ->repl->repl-> is correct. If you doubt my advice, maybe you want to verify it yourself?

        The timeout default setting is set by MozRepl. I suggest you consult its documentation or source code to find more details.

        If you are unclear about a concept or term, like "ad blocker", maybe using a web resource like Wikipedia or Google helps - Ad filtering is the term Wikipedia suggests to me, and ad blocker will likely also return relevant search terms.