use Modern::Perl;
use Carp qw( croak );
+use JSON qw( from_json );
use C4::Context;
use base qw(Class::Accessor);
__PACKAGE__->mk_accessors(qw(login password base_url opac_base_url selenium_addr selenium_port driver));
+sub capture {
+ my ( $class, $driver ) = @_;
+
+ my $lutim_server = q|https://framapic.org|; # Thanks Framasoft!
+ $driver->capture_screenshot('selenium_failure.png');
+ my $from_json = from_json qx{curl -s -F "format=json" -F "file=\@selenium_failure.png" -F "delete-day=1" $lutim_server};
+ if ( $from_json ) {
+ print STDERR "\nSCREENSHOT: $lutim_server/" . $from_json->{msg}->{short} . "\n";
+ }
+}
+
sub new {
my ( $class, $params ) = @_;
my $self = {};
port => $self->{selenium_port},
remote_server_addr => $self->{selenium_addr},
error_handler => sub {
- my $selenium_error = $_[1];
+ my ( $driver, $selenium_error ) = @_;
print STDERR "\nSTRACE:";
my $i = 1;
while ( (my @call_details = (caller($i++))) ){
print STDERR "\t" . $call_details[1]. ":" . $call_details[2] . " in " . $call_details[3]."\n";
}
print STDERR "\n";
- croak $selenium_error; }
+ $class->capture( $driver );
+ croak $selenium_error;
+ }
);
return bless $self, $class;
}