in reply to Re^2: Screencapture with Perl on Linux
in thread Screencapture with Perl on Linux (SOLVED)

In the respository, there now is screenshot.pl, which captures the screen. And both, the tab and the coordinates are optional. What follows is the meat of the used code:

#!perl -w use strict; use WWW::Mechanize::Firefox; use Getopt::Long; use Pod::Usage; GetOptions( 'mozrepl|m:s' => \my $mozrepl, 'outfile|o:s' => \my $outfile, ) or pod2usage(); $outfile ||= 'screenshot.png'; my @args; if (! @ARGV) { push @args, tab => 'current'; # this needs 0.13 or higher }; my $mech = WWW::Mechanize::Firefox->new( launch => 'firefox', @args ); if (@ARGV) { $mech->get($ARGV[0]); }; my $png = $mech->content_as_png(); open my $out, '>', $outfile or die "Couldn't create '$outfile': $!"; binmode $out; print {$out} $png;

I'm not sure how I could make it clearer in the documentation that all parameters to ->content_as_png are optional, most likely I'll add a reference to screenshot.pl in the next release. Other suggestions are welcome!

Replies are listed 'Best First'.
Re^4: Screencapture with Perl on Linux
by LanX (Saint) on Dec 05, 2009 at 16:19 UTC
    > I'm not sure how I could make it clearer in the documentation that all parameters to ->content_as_png are optional, most likely I'll add a reference to screenshot.pl in the next release. Other suggestions are welcome!

    what about adding

    All parameters are optional. COORDINATES default to whole inner (?) window. (incomplete COORDINATES result in a warning/error) TAB defaults to current TAB.

    I'm not sure about the "inner" or "outer", I suppose you can't capture the outer frame-borders...

    Cheers Rolf

    UPDATED about incomplete coordinates.

    UPDATE: Or just change the first line to

    Without parameters returns the given tab or the current page rendered as PNG image."

    UPDATE:

    wouldn't the head definition better be

    $mech->content_as_png [TAB] [, COORDINATES]
    instead of
    $mech->content_as_png [TAB, COORDINATES]

    implying that one can define just the TAB independently from COORDINATES?

    I'm not sure about this [optional arg] notation, is there a formal definition for POD?

    In perl context it pretty much looks like arrayrefs which confuses me sometimes.

    UPDATE: I'd rather prefer parens around args, which is a matter of taste

    $mech->content_as_png ( [TAB] [, COORDINATES] )
    ... but you sometimes inconsistently used parens for signatures.

    like in:

    $mech->synchronize( $event, $callback )

      Yes, I only capture the "page" part, not the chrome around it.

Re^4: Screencapture with Perl on Linux
by sadarax (Sexton) on Dec 06, 2009 at 00:48 UTC
    Thanks for the effort Corion. I want to try your test code but I needed WWW::Mechanize::Firefox. CPAN normally works very well when fulfilling all necessary module dependencies automatically. But this time it failed to RemoteObject.pm during module installing. Here is the output (I tried a couple of times, including deleting all the directories in the ~/.cpan/build/ dir):
    prompt$ sudo perl -MCPAN -e 'install WWW::Mechanize::Firefox' CPAN: Storable loaded ok (v2.18) Going to read /home/jimbob/.cpan/Metadata Database was generated on Sat, 05 Dec 2009 21:28:40 GMT CPAN: YAML loaded ok (v0.70) Going to read /home/jimbob/.cpan/build/ DONE Found no old builds, restored the state of none Running install for module 'WWW::Mechanize::Firefox' Running make for C/CO/CORION/WWW-Mechanize-Firefox-0.12.tar.gz CPAN: Digest::SHA loaded ok (v5.45) CPAN: Compress::Zlib loaded ok (v2.008) Checksum for /home/jimbob/.cpan/sources/authors/id/C/CO/CORION/WWW-Mec +hanize-Firefox-0.12.tar.gz ok WWW-Mechanize-Firefox-0.12/ WWW-Mechanize-Firefox-0.12/t/ WWW-Mechanize-Firefox-0.12/t/50-mech-event.t WWW-Mechanize-Firefox-0.12/t/51-mech-sandbox.t WWW-Mechanize-Firefox-0.12/t/48-mech-launch.t WWW-Mechanize-Firefox-0.12/t/51-mech-links.t WWW-Mechanize-Firefox-0.12/t/50-mech-status.t WWW-Mechanize-Firefox-0.12/t/70-rt71216.html WWW-Mechanize-Firefox-0.12/t/70-urlbar-2.html WWW-Mechanize-Firefox-0.12/t/70-rt71216.t WWW-Mechanize-Firefox-0.12/t/49-mech-get-file.t WWW-Mechanize-Firefox-0.12/t/50-mech-multi-event.t WWW-Mechanize-Firefox-0.12/t/70-tag-team.t WWW-Mechanize-Firefox-0.12/t/53-mech-capture-js-error.html WWW-Mechanize-Firefox-0.12/t/99-unix-text.t WWW-Mechanize-Firefox-0.12/t/99-manifest.t WWW-Mechanize-Firefox-0.12/t/50-mech-get.t WWW-Mechanize-Firefox-0.12/t/49-mech-get-file.html WWW-Mechanize-Firefox-0.12/t/50-mech-new.t WWW-Mechanize-Firefox-0.12/t/52-mech-api-find_link.html WWW-Mechanize-Firefox-0.12/t/99-versions.t WWW-Mechanize-Firefox-0.12/t/52-mech-api-find_link.t WWW-Mechanize-Firefox-0.12/t/70-urlbar.t WWW-Mechanize-Firefox-0.12/t/51-mech-set-content.t WWW-Mechanize-Firefox-0.12/t/50-mech-ct.t WWW-Mechanize-Firefox-0.12/t/70-two-instances.t WWW-Mechanize-Firefox-0.12/t/60-mech-cookies.t WWW-Mechanize-Firefox-0.12/t/70-download-url.t WWW-Mechanize-Firefox-0.12/t/70-urlbar.html WWW-Mechanize-Firefox-0.12/t/70-real-status.t WWW-Mechanize-Firefox-0.12/t/01-mech-destroy.t WWW-Mechanize-Firefox-0.12/t/52-mech-api-find_link-frames.t WWW-Mechanize-Firefox-0.12/t/70-mech-png.t WWW-Mechanize-Firefox-0.12/t/51-mech-sandbox.html WWW-Mechanize-Firefox-0.12/t/52-mech-xpath.t WWW-Mechanize-Firefox-0.12/t/53-mech-capture-js-noerror.html WWW-Mechanize-Firefox-0.12/t/99-pod.t WWW-Mechanize-Firefox-0.12/t/53-mech-capture-js-error.t WWW-Mechanize-Firefox-0.12/t/99-todo.t WWW-Mechanize-Firefox-0.12/lib/ WWW-Mechanize-Firefox-0.12/lib/WWW/ WWW-Mechanize-Firefox-0.12/lib/WWW/Mechanize/ WWW-Mechanize-Firefox-0.12/lib/WWW/Mechanize/Firefox.pm WWW-Mechanize-Firefox-0.12/lib/HTML/ WWW-Mechanize-Firefox-0.12/lib/HTML/Display/ WWW-Mechanize-Firefox-0.12/lib/HTML/Display/MozRepl.pm WWW-Mechanize-Firefox-0.12/lib/HTTP/ WWW-Mechanize-Firefox-0.12/lib/HTTP/Cookies/ WWW-Mechanize-Firefox-0.12/lib/HTTP/Cookies/MozRepl.pm WWW-Mechanize-Firefox-0.12/Changes WWW-Mechanize-Firefox-0.12/MANIFEST WWW-Mechanize-Firefox-0.12/MANIFEST.skip WWW-Mechanize-Firefox-0.12/.gitignore WWW-Mechanize-Firefox-0.12/Makefile.PL WWW-Mechanize-Firefox-0.12/META.yml CPAN: File::Temp loaded ok (v0.18) CPAN.pm: Going to build C/CO/CORION/WWW-Mechanize-Firefox-0.12.tar.g +z Checking if your kit is complete... Warning: the following files are missing in your kit: t/70-urlbar.pl Please inform the author. Writing Makefile for WWW::Mechanize::Firefox ---- Unsatisfied dependencies detected during ---- ---- CORION/WWW-Mechanize-Firefox-0.12.tar.gz ---- MozRepl::RemoteObject [requires] Shall I follow them and prepend them to the queue of modules we are processing right now? [yes] Running make test Delayed until after prerequisites Running make install Delayed until after prerequisites Running install for module 'MozRepl::RemoteObject' Running make for C/CO/CORION/MozRepl-RemoteObject-0.11.tar.gz Checksum for /home/jimbob/.cpan/sources/authors/id/C/CO/CORION/MozRepl +-RemoteObject-0.11.tar.gz ok MozRepl-RemoteObject-0.11/ MozRepl-RemoteObject-0.11/t/ MozRepl-RemoteObject-0.11/t/01-array.t MozRepl-RemoteObject-0.11/t/01-dive.t MozRepl-RemoteObject-0.11/t/99-versions.t MozRepl-RemoteObject-0.11/t/02-repl.t MozRepl-RemoteObject-0.11/t/01-callback.t MozRepl-RemoteObject-0.11/t/04-appversion.t MozRepl-RemoteObject-0.11/t/01-invoke.t MozRepl-RemoteObject-0.11/t/02-synopsis.t MozRepl-RemoteObject-0.11/t/01-release-action.t MozRepl-RemoteObject-0.11/t/02-multiple-instances.t MozRepl-RemoteObject-0.11/t/99-unix-text.t MozRepl-RemoteObject-0.11/t/01-hash.t MozRepl-RemoteObject-0.11/t/99-pod.t MozRepl-RemoteObject-0.11/t/99-manifest.t MozRepl-RemoteObject-0.11/t/01-expr.t MozRepl-RemoteObject-0.11/t/99-todo.t MozRepl-RemoteObject-0.11/t/03-unicode.t MozRepl-RemoteObject-0.11/lib/ MozRepl-RemoteObject-0.11/lib/MozRepl/ MozRepl-RemoteObject-0.11/lib/MozRepl/RemoteObject.pm MozRepl-RemoteObject-0.11/lib/MozRepl/Plugin/ MozRepl-RemoteObject-0.11/lib/MozRepl/Plugin/JSON2.pm MozRepl-RemoteObject-0.11/Changes MozRepl-RemoteObject-0.11/MANIFEST.skip MozRepl-RemoteObject-0.11/MANIFEST MozRepl-RemoteObject-0.11/.gitignore MozRepl-RemoteObject-0.11/Makefile.PL MozRepl-RemoteObject-0.11/META.yml CPAN.pm: Going to build C/CO/CORION/MozRepl-RemoteObject-0.11.tar.gz Checking if your kit is complete... Looks good Writing Makefile for MozRepl::RemoteObject ---- Unsatisfied dependencies detected during ---- ---- CORION/MozRepl-RemoteObject-0.11.tar.gz ---- MozRepl [requires] Shall I follow them and prepend them to the queue of modules we are processing right now? [yes] Running make test Delayed until after prerequisites Running make install Delayed until after prerequisites Running install for module 'MozRepl' Running make for Z/ZI/ZIGOROU/MozRepl-0.06.tar.gz Checksum for /home/jimbob/.cpan/sources/authors/id/Z/ZI/ZIGOROU/MozRep +l-0.06.tar.gz ok MozRepl-0.06/ MozRepl-0.06/Changes MozRepl-0.06/inc/ MozRepl-0.06/inc/Module/ MozRepl-0.06/inc/Module/AutoInstall.pm MozRepl-0.06/inc/Module/Install/ MozRepl-0.06/inc/Module/Install/AutoInstall.pm MozRepl-0.06/inc/Module/Install/Base.pm MozRepl-0.06/inc/Module/Install/Can.pm MozRepl-0.06/inc/Module/Install/Fetch.pm MozRepl-0.06/inc/Module/Install/Include.pm MozRepl-0.06/inc/Module/Install/Makefile.pm MozRepl-0.06/inc/Module/Install/Metadata.pm MozRepl-0.06/inc/Module/Install/TestBase.pm MozRepl-0.06/inc/Module/Install/Win32.pm MozRepl-0.06/inc/Module/Install/WriteAll.pm MozRepl-0.06/inc/Module/Install.pm MozRepl-0.06/inc/Spiffy.pm MozRepl-0.06/inc/Test/ MozRepl-0.06/inc/Test/Base/ MozRepl-0.06/inc/Test/Base/Filter.pm MozRepl-0.06/inc/Test/Base.pm MozRepl-0.06/inc/Test/Builder/ MozRepl-0.06/inc/Test/Builder/Module.pm MozRepl-0.06/inc/Test/Builder.pm MozRepl-0.06/inc/Test/More.pm MozRepl-0.06/lib/ MozRepl-0.06/lib/MozRepl/ MozRepl-0.06/lib/MozRepl/Client.pm MozRepl-0.06/lib/MozRepl/Log.pm MozRepl-0.06/lib/MozRepl/Plugin/ MozRepl-0.06/lib/MozRepl/Plugin/Base.pm MozRepl-0.06/lib/MozRepl/Plugin/JSON.pm MozRepl-0.06/lib/MozRepl/Plugin/Repl/ MozRepl-0.06/lib/MozRepl/Plugin/Repl/Back.pm MozRepl-0.06/lib/MozRepl/Plugin/Repl/Enter.pm MozRepl-0.06/lib/MozRepl/Plugin/Repl/Home.pm MozRepl-0.06/lib/MozRepl/Plugin/Repl/Inspect.pm MozRepl-0.06/lib/MozRepl/Plugin/Repl/Load.pm MozRepl-0.06/lib/MozRepl/Plugin/Repl/Print.pm MozRepl-0.06/lib/MozRepl/Plugin/Repl/Rename.pm MozRepl-0.06/lib/MozRepl/Plugin/Repl/Search.pm MozRepl-0.06/lib/MozRepl/Plugin/Repl/Util/ MozRepl-0.06/lib/MozRepl/Plugin/Repl/Util/DocFor.pm MozRepl-0.06/lib/MozRepl/Plugin/Repl/Util/HelpUrlFor.pm MozRepl-0.06/lib/MozRepl/Util.pm MozRepl-0.06/lib/MozRepl.pm MozRepl-0.06/Makefile.PL MozRepl-0.06/MANIFEST MozRepl-0.06/META.yml MozRepl-0.06/README MozRepl-0.06/t/ MozRepl-0.06/t/00-load.t MozRepl-0.06/t/10-plugin-repl-enter.t MozRepl-0.06/t/11-plugin-repl-search.t MozRepl-0.06/t/12-plugin-repl-inspect.t MozRepl-0.06/t/13-plugin-repl-load.t MozRepl-0.06/t/14-plugin-repl-rename.t MozRepl-0.06/t/15-plugin-repl-print.t MozRepl-0.06/t/16-plugin-repl-home.t MozRepl-0.06/t/17-plugin-repl-back.t MozRepl-0.06/t/18-plugin-repl-util-help_url_for.t MozRepl-0.06/t/19-plugin-repl-util-doc_for.t MozRepl-0.06/t/20-plugin-json.t MozRepl-0.06/t/pod-coverage.t MozRepl-0.06/t/pod.t CPAN.pm: Going to build Z/ZI/ZIGOROU/MozRepl-0.06.tar.gz *** Module::AutoInstall version 1.03 *** Checking for Perl dependencies... [Core Features] - Carp::Clan ...loaded. (6.04) - Class::Accessor::Fast ...loaded. (0.33) - Class::Data::Inheritable ...loaded. (0.08) - Data::Dump ...loaded. (1.15) - Data::JavaScript::Anon ...loaded. (1.03) - File::Spec ...loaded. (3.2501) - Module::Pluggable::Fast ...missing. - Net::Telnet ...loaded. (3.03) - Template ...loaded. (2.22) - Template::Provider::FromDATA ...loaded. (0.11) - Text::SimpleTable ...loaded. (2.0) - UNIVERSAL::require ...loaded. (0.13) - URI ...loaded. (1.37) ==> Auto-install the 1 mandatory module(s) from CPAN? [y] *** Since we're running under CPANPLUS, I'll just let it take care of the dependency's installation later. *** Module::AutoInstall configuration finished. Checking if your kit is complete... Looks good Writing Makefile for MozRepl ---- Unsatisfied dependencies detected during ---- ---- ZIGOROU/MozRepl-0.06.tar.gz ---- Module::Pluggable::Fast [requires] Shall I follow them and prepend them to the queue of modules we are processing right now? [yes] Running make test Delayed until after prerequisites Running make install Delayed until after prerequisites Running install for module 'Module::Pluggable::Fast' The module Module::Pluggable::Fast isn't available on CPAN. Either the module has not yet been uploaded to CPAN, or it is temporary unavailable. Please contact the author to find out more about the status. Try 'i Module::Pluggable::Fast'. Running make for Z/ZI/ZIGOROU/MozRepl-0.06.tar.gz Has already been unwrapped into directory /home/jimbob/.cpan/build/M +ozRepl-0.06-Y2nQP9 CPAN.pm: Going to build Z/ZI/ZIGOROU/MozRepl-0.06.tar.gz /usr/bin/perl "-Iinc" Makefile.PL --config= --installdeps=Module::Plug +gable::Fast,0 *** Since we're running under CPANPLUS, I'll just let it take care of the dependency's installation later. cp lib/MozRepl/Client.pm blib/lib/MozRepl/Client.pm cp lib/MozRepl/Plugin/Repl/Enter.pm blib/lib/MozRepl/Plugin/Repl/Enter +.pm cp lib/MozRepl/Plugin/JSON.pm blib/lib/MozRepl/Plugin/JSON.pm cp lib/MozRepl/Plugin/Repl/Util/HelpUrlFor.pm blib/lib/MozRepl/Plugin/ +Repl/Util/HelpUrlFor.pm cp lib/MozRepl/Plugin/Repl/Load.pm blib/lib/MozRepl/Plugin/Repl/Load.p +m cp lib/MozRepl/Plugin/Repl/Back.pm blib/lib/MozRepl/Plugin/Repl/Back.p +m cp lib/MozRepl/Plugin/Base.pm blib/lib/MozRepl/Plugin/Base.pm cp lib/MozRepl/Plugin/Repl/Print.pm blib/lib/MozRepl/Plugin/Repl/Print +.pm cp lib/MozRepl/Plugin/Repl/Inspect.pm blib/lib/MozRepl/Plugin/Repl/Ins +pect.pm cp lib/MozRepl.pm blib/lib/MozRepl.pm cp lib/MozRepl/Plugin/Repl/Util/DocFor.pm blib/lib/MozRepl/Plugin/Repl +/Util/DocFor.pm cp lib/MozRepl/Util.pm blib/lib/MozRepl/Util.pm cp lib/MozRepl/Log.pm blib/lib/MozRepl/Log.pm cp lib/MozRepl/Plugin/Repl/Search.pm blib/lib/MozRepl/Plugin/Repl/Sear +ch.pm cp lib/MozRepl/Plugin/Repl/Home.pm blib/lib/MozRepl/Plugin/Repl/Home.p +m cp lib/MozRepl/Plugin/Repl/Rename.pm blib/lib/MozRepl/Plugin/Repl/Rena +me.pm Manifying blib/man3/MozRepl::Plugin::Repl::Enter.3pm Manifying blib/man3/MozRepl::Client.3pm Manifying blib/man3/MozRepl::Plugin::JSON.3pm Manifying blib/man3/MozRepl::Plugin::Repl::Util::HelpUrlFor.3pm Manifying blib/man3/MozRepl::Plugin::Repl::Load.3pm Manifying blib/man3/MozRepl::Plugin::Repl::Back.3pm Manifying blib/man3/MozRepl::Plugin::Base.3pm Manifying blib/man3/MozRepl::Plugin::Repl::Print.3pm Manifying blib/man3/MozRepl::Plugin::Repl::Inspect.3pm Manifying blib/man3/MozRepl.3pm Manifying blib/man3/MozRepl::Plugin::Repl::Util::DocFor.3pm Manifying blib/man3/MozRepl::Util.3pm Manifying blib/man3/MozRepl::Log.3pm Manifying blib/man3/MozRepl::Plugin::Repl::Search.3pm Manifying blib/man3/MozRepl::Plugin::Repl::Home.3pm Manifying blib/man3/MozRepl::Plugin::Repl::Rename.3pm ZIGOROU/MozRepl-0.06.tar.gz /usr/bin/make -- OK Running make test /usr/bin/perl "-Iinc" Makefile.PL --config= --installdeps=Module::Plug +gable::Fast,0 *** Since we're running under CPANPLUS, I'll just let it take care of the dependency's installation later. PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_h +arness(0, 'inc', 'blib/lib', 'blib/arch')" t/00-load.t t/10-plugin-re +pl-enter.t t/11-plugin-repl-search.t t/12-plugin-repl-inspect.t t/13- +plugin-repl-load.t t/14-plugin-repl-rename.t t/15-plugin-repl-print.t + t/16-plugin-repl-home.t t/17-plugin-repl-back.t t/18-plugin-repl-uti +l-help_url_for.t t/19-plugin-repl-util-doc_for.t t/20-plugin-json.t t +/pod-coverage.t t/pod.t t/00-load.............................ok t/10-plugin-repl-enter................ok 3/3 skipped: various reasons t/11-plugin-repl-search...............ok 5/5 skipped: various reasons t/12-plugin-repl-inspect..............ok 3/3 skipped: various reasons t/13-plugin-repl-load.................ok 1/1 skipped: various reasons t/14-plugin-repl-rename...............ok 4/4 skipped: various reasons t/15-plugin-repl-print................ok 5/5 skipped: various reasons t/16-plugin-repl-home.................ok 2/2 skipped: various reasons t/17-plugin-repl-back.................ok 3/3 skipped: various reasons t/18-plugin-repl-util-help_url_for....ok 4/4 skipped: various reasons t/19-plugin-repl-util-doc_for.........ok 7/7 skipped: various reasons t/20-plugin-json......................ok 2/2 skipped: various reasons t/pod-coverage........................skipped all skipped: Test::Pod::Coverage 1.04 required for testing POD + coverage t/pod.................................skipped all skipped: Test::Pod 1.14 required for testing POD All tests successful, 2 tests and 39 subtests skipped. Files=14, Tests=42, 1 wallclock secs ( 1.22 cusr + 0.10 csys = 1.32 + CPU) ZIGOROU/MozRepl-0.06.tar.gz Tests succeeded but one dependency not OK (Module::Pluggable::Fast) ZIGOROU/MozRepl-0.06.tar.gz [dependencies] -- NA Running make install make test had returned bad status, won't install without force Running make for C/CO/CORION/MozRepl-RemoteObject-0.11.tar.gz Has already been unwrapped into directory /home/jimbob/.cpan/build/M +ozRepl-RemoteObject-0.11-9hwrO8 CPAN.pm: Going to build C/CO/CORION/MozRepl-RemoteObject-0.11.tar.gz Warning: Prerequisite 'MozRepl => 0.06' for 'C/CO/CORION/MozRepl-Remot +eObject-0.11.tar.gz' failed when processing 'Z/ZI/ZIGOROU/MozRepl-0.0 +6.tar.gz' with 'make_test => NO one dependency not OK (Module::Plugga +ble::Fast)'. Continuing, but chances to succeed are limited. cp lib/MozRepl/RemoteObject.pm blib/lib/MozRepl/RemoteObject.pm cp lib/MozRepl/Plugin/JSON2.pm blib/lib/MozRepl/Plugin/JSON2.pm Manifying blib/man3/MozRepl::RemoteObject.3pm Manifying blib/man3/MozRepl::Plugin::JSON2.3pm CORION/MozRepl-RemoteObject-0.11.tar.gz /usr/bin/make -- OK Running make test PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_h +arness(0, 'blib/lib', 'blib/arch')" t/*.t t/01-array.................dubious Test returned status 255 (wstat 65280, 0xff00) t/01-callback..............dubious Test returned status 255 (wstat 65280, 0xff00) t/01-dive..................dubious Test returned status 255 (wstat 65280, 0xff00) t/01-expr..................dubious Test returned status 255 (wstat 65280, 0xff00) t/01-hash..................dubious Test returned status 255 (wstat 65280, 0xff00) t/01-invoke................dubious Test returned status 255 (wstat 65280, 0xff00) t/01-release-action........dubious Test returned status 255 (wstat 65280, 0xff00) t/02-multiple-instances....dubious Test returned status 255 (wstat 65280, 0xff00) t/02-repl..................dubious Test returned status 255 (wstat 65280, 0xff00) t/02-synopsis..............dubious Test returned status 255 (wstat 65280, 0xff00) t/03-unicode...............dubious Test returned status 255 (wstat 65280, 0xff00) t/04-appversion............dubious Test returned status 255 (wstat 65280, 0xff00) t/99-manifest..............ok t/99-pod...................skipped all skipped: Test::Pod required for testing POD t/99-todo..................ok t/99-unix-text.............ok t/99-versions..............skipped all skipped: File::Slurp needed for testing Failed Test Stat Wstat Total Fail List of Failed ---------------------------------------------------------------------- +--------- t/01-array.t 255 65280 ?? ?? ?? t/01-callback.t 255 65280 ?? ?? ?? t/01-dive.t 255 65280 ?? ?? ?? t/01-expr.t 255 65280 ?? ?? ?? t/01-hash.t 255 65280 ?? ?? ?? t/01-invoke.t 255 65280 ?? ?? ?? t/01-release-action.t 255 65280 ?? ?? ?? t/02-multiple-instances.t 255 65280 ?? ?? ?? t/02-repl.t 255 65280 ?? ?? ?? t/02-synopsis.t 255 65280 ?? ?? ?? t/03-unicode.t 255 65280 ?? ?? ?? t/04-appversion.t 255 65280 ?? ?? ?? 2 tests skipped. Failed 12/17 test scripts. 0/14 subtests failed. Files=17, Tests=14, 1 wallclock secs ( 0.79 cusr + 0.14 csys = 0.93 + CPU) CORION/MozRepl-RemoteObject-0.11.tar.gz /usr/bin/make test -- NOT OK //hint// to see the cpan-testers results for installing this module, t +ry: reports CORION/MozRepl-RemoteObject-0.11.tar.gz Running make install make test had returned bad status, won't install without force Running make for C/CO/CORION/WWW-Mechanize-Firefox-0.12.tar.gz Has already been unwrapped into directory /home/jimbob/.cpan/build/W +WW-Mechanize-Firefox-0.12-GmxhB3 CPAN.pm: Going to build C/CO/CORION/WWW-Mechanize-Firefox-0.12.tar.g +z Warning: Prerequisite 'MozRepl::RemoteObject => 0.11' for 'C/CO/CORION +/WWW-Mechanize-Firefox-0.12.tar.gz' failed when processing 'C/CO/CORI +ON/MozRepl-RemoteObject-0.11.tar.gz' with 'make_test => NO'. Continui +ng, but chances to succeed are limited. cp lib/HTML/Display/MozRepl.pm blib/lib/HTML/Display/MozRepl.pm cp lib/HTTP/Cookies/MozRepl.pm blib/lib/HTTP/Cookies/MozRepl.pm cp lib/WWW/Mechanize/Firefox.pm blib/lib/WWW/Mechanize/Firefox.pm Manifying blib/man3/HTTP::Cookies::MozRepl.3pm Manifying blib/man3/HTML::Display::MozRepl.3pm Manifying blib/man3/WWW::Mechanize::Firefox.3pm CORION/WWW-Mechanize-Firefox-0.12.tar.gz /usr/bin/make -- OK Running make test PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_h +arness(0, 'blib/lib', 'blib/arch')" t/*.t t/01-mech-destroy.................dubious Test returned status 255 (wstat 65280, 0xff00) t/48-mech-launch..................dubious Test returned status 255 (wstat 65280, 0xff00) t/49-mech-get-file................dubious Test returned status 255 (wstat 65280, 0xff00) t/50-mech-ct......................dubious Test returned status 255 (wstat 65280, 0xff00) t/50-mech-event...................dubious Test returned status 255 (wstat 65280, 0xff00) t/50-mech-get.....................dubious Test returned status 255 (wstat 65280, 0xff00) t/50-mech-multi-event.............dubious Test returned status 255 (wstat 65280, 0xff00) t/50-mech-new.....................dubious Test returned status 255 (wstat 65280, 0xff00) t/50-mech-status..................dubious Test returned status 255 (wstat 65280, 0xff00) t/51-mech-links...................dubious Test returned status 255 (wstat 65280, 0xff00) t/51-mech-sandbox.................dubious Test returned status 255 (wstat 65280, 0xff00) t/51-mech-set-content.............dubious Test returned status 255 (wstat 65280, 0xff00) t/52-mech-api-find_link-frames....dubious Test returned status 255 (wstat 65280, 0xff00) t/52-mech-api-find_link...........dubious Test returned status 255 (wstat 65280, 0xff00) t/52-mech-xpath...................dubious Test returned status 255 (wstat 65280, 0xff00) t/53-mech-capture-js-error........dubious Test returned status 255 (wstat 65280, 0xff00) t/60-mech-cookies.................dubious Test returned status 255 (wstat 65280, 0xff00) t/70-download-url.................dubious Test returned status 2 (wstat 512, 0x200) t/70-mech-png.....................dubious Test returned status 255 (wstat 65280, 0xff00) t/70-real-status..................dubious Test returned status 2 (wstat 512, 0x200) t/70-rt71216......................dubious Test returned status 255 (wstat 65280, 0xff00) t/70-tag-team.....................dubious Test returned status 255 (wstat 65280, 0xff00) t/70-two-instances................dubious Test returned status 255 (wstat 65280, 0xff00) t/70-urlbar.......................dubious Test returned status 2 (wstat 512, 0x200) t/99-manifest.....................ok t/99-pod..........................skipped all skipped: Test::Pod required for testing POD t/99-todo.........................ok t/99-unix-text....................ok t/99-versions.....................skipped all skipped: File::Slurp needed for testing Failed Test Stat Wstat Total Fail List of Failed ---------------------------------------------------------------------- +--------- t/01-mech-destroy.t 255 65280 ?? ?? ?? t/48-mech-launch.t 255 65280 ?? ?? ?? t/49-mech-get-file.t 255 65280 ?? ?? ?? t/50-mech-ct.t 255 65280 ?? ?? ?? t/50-mech-event.t 255 65280 ?? ?? ?? t/50-mech-get.t 255 65280 ?? ?? ?? t/50-mech-multi-event.t 255 65280 ?? ?? ?? t/50-mech-new.t 255 65280 ?? ?? ?? t/50-mech-status.t 255 65280 ?? ?? ?? t/51-mech-links.t 255 65280 ?? ?? ?? t/51-mech-sandbox.t 255 65280 ?? ?? ?? t/51-mech-set-content.t 255 65280 ?? ?? ?? t/52-mech-api-find_link-frames.t 255 65280 ?? ?? ?? t/52-mech-api-find_link.t 255 65280 ?? ?? ?? t/52-mech-xpath.t 255 65280 ?? ?? ?? t/53-mech-capture-js-error.t 255 65280 ?? ?? ?? t/60-mech-cookies.t 255 65280 ?? ?? ?? t/70-download-url.t 2 512 ?? ?? ?? t/70-mech-png.t 255 65280 ?? ?? ?? t/70-real-status.t 2 512 ?? ?? ?? t/70-rt71216.t 255 65280 ?? ?? ?? t/70-tag-team.t 255 65280 ?? ?? ?? t/70-two-instances.t 255 65280 ?? ?? ?? t/70-urlbar.t 2 512 ?? ?? ?? 2 tests skipped. Failed 24/29 test scripts. 0/17 subtests failed. Files=29, Tests=17, 1 wallclock secs ( 0.87 cusr + 0.19 csys = 1.06 + CPU) CORION/WWW-Mechanize-Firefox-0.12.tar.gz /usr/bin/make test -- NOT OK //hint// to see the cpan-testers results for installing this module, t +ry: reports CORION/WWW-Mechanize-Firefox-0.12.tar.gz Running make install make test had returned bad status, won't install without force
    Any suggestions anyone?
        That helped, but things are not working yet. Doing the manual install for Module::Pluggable::Fast and then retrying the install of WWW::Mechanize::Firefox worked.

        However the script is giving me an error when I do this:

        prompt$ ./screenshot.pl "www.cnn.com" write error: filehandle isn't open at /usr/local/share/perl/5.10.0/Moz +Repl/Client.pm line 186

        Any suggestions?