Lines 18-29
package t::lib::Selenium;
Link Here
|
18 |
|
18 |
|
19 |
use Modern::Perl; |
19 |
use Modern::Perl; |
20 |
use Carp qw( croak ); |
20 |
use Carp qw( croak ); |
|
|
21 |
use JSON qw( from_json ); |
21 |
|
22 |
|
22 |
use C4::Context; |
23 |
use C4::Context; |
23 |
|
24 |
|
24 |
use base qw(Class::Accessor); |
25 |
use base qw(Class::Accessor); |
25 |
__PACKAGE__->mk_accessors(qw(login password base_url opac_base_url selenium_addr selenium_port driver)); |
26 |
__PACKAGE__->mk_accessors(qw(login password base_url opac_base_url selenium_addr selenium_port driver)); |
26 |
|
27 |
|
|
|
28 |
sub capture { |
29 |
my ( $class, $driver ) = @_; |
30 |
|
31 |
my $lutim_server = q|https://framapic.org|; # Thanks Framasoft! |
32 |
$driver->capture_screenshot('selenium_failure.png'); |
33 |
my $from_json = from_json qx{curl -s -F "format=json" -F "file=\@selenium_failure.png" -F "delete-day=1" $lutim_server}; |
34 |
if ( $from_json ) { |
35 |
print STDERR "\nSCREENSHOT: $lutim_server/" . $from_json->{msg}->{short} . "\n"; |
36 |
} |
37 |
} |
38 |
|
27 |
sub new { |
39 |
sub new { |
28 |
my ( $class, $params ) = @_; |
40 |
my ( $class, $params ) = @_; |
29 |
my $self = {}; |
41 |
my $self = {}; |
Lines 38-51
sub new {
Link Here
|
38 |
port => $self->{selenium_port}, |
50 |
port => $self->{selenium_port}, |
39 |
remote_server_addr => $self->{selenium_addr}, |
51 |
remote_server_addr => $self->{selenium_addr}, |
40 |
error_handler => sub { |
52 |
error_handler => sub { |
41 |
my $selenium_error = $_[1]; |
53 |
my ( $driver, $selenium_error ) = @_; |
42 |
print STDERR "\nSTRACE:"; |
54 |
print STDERR "\nSTRACE:"; |
43 |
my $i = 1; |
55 |
my $i = 1; |
44 |
while ( (my @call_details = (caller($i++))) ){ |
56 |
while ( (my @call_details = (caller($i++))) ){ |
45 |
print STDERR "\t" . $call_details[1]. ":" . $call_details[2] . " in " . $call_details[3]."\n"; |
57 |
print STDERR "\t" . $call_details[1]. ":" . $call_details[2] . " in " . $call_details[3]."\n"; |
46 |
} |
58 |
} |
47 |
print STDERR "\n"; |
59 |
print STDERR "\n"; |
48 |
croak $selenium_error; } |
60 |
$class->capture( $driver ); |
|
|
61 |
croak $selenium_error; |
62 |
} |
49 |
); |
63 |
); |
50 |
return bless $self, $class; |
64 |
return bless $self, $class; |
51 |
} |
65 |
} |
52 |
- |
|
|