Skip to content

Commit 672cad2

Browse files
committed
Fix #328: Print error better in varying versions of geckodriver
It appears the output of non-fully implemented functions is inconsistent.
1 parent 8515c76 commit 672cad2

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

lib/Selenium/Remote/ErrorHandler.pm

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -121,10 +121,15 @@ sub process_error {
121121
# let the end user handle it or we can save it an image file at a temp
122122
# location & return the path.
123123

124+
# handle stacktrace-only responses by assuming unknown error
125+
my $is_stacktrace = !$resp->{status};
126+
$resp->{status} = 13 unless $resp->{status};
127+
124128
my $ret;
125-
$ret->{'stackTrace'} = $resp->{'value'}->{'stackTrace'};
126-
$ret->{'error'} = $self->STATUS_CODE->{$resp->{'status'}};
127-
$ret->{'message'} = $resp->{'value'}->{'message'};
129+
#XXX capitalization is inconsistent among geckodriver versions
130+
$ret->{'stackTrace'} = $resp->{'value'}->{'stacktrace'} // $resp->{'value'}->{'stackTrace'};
131+
$ret->{'error'} = $is_stacktrace ? $resp->{value}->{error} : $self->STATUS_CODE->{$resp->{'status'}};
132+
$ret->{'message'} = $resp->{'value'}->{'message'};
128133

129134
return $ret;
130135
}

0 commit comments

Comments
 (0)