File tree Expand file tree Collapse file tree 1 file changed +17
-5
lines changed
rb/lib/selenium/webdriver/remote Expand file tree Collapse file tree 1 file changed +17
-5
lines changed Original file line number Diff line number Diff line change @@ -22,6 +22,8 @@ module WebDriver
22
22
module Remote
23
23
# @api private
24
24
class Response
25
+ STACKTRACE_KEY = 'stackTrace' . freeze
26
+
25
27
attr_reader :code , :payload
26
28
attr_writer :payload
27
29
@@ -73,11 +75,23 @@ def assert_ok
73
75
end
74
76
75
77
def add_backtrace ( ex )
76
- return unless value . is_a? ( Hash ) && value [ 'stackTrace' ]
78
+ return unless error_payload . is_a? ( Hash )
79
+
80
+ server_trace = error_payload [ STACKTRACE_KEY ] || error_payload [ STACKTRACE_KEY . downcase ]
81
+ return unless server_trace
77
82
78
- server_trace = value [ 'stackTrace' ]
83
+ backtrace = case server_trace
84
+ when Array
85
+ backtrace_from_remote ( server_trace )
86
+ when String
87
+ server_trace . split ( "\n " )
88
+ end
79
89
80
- backtrace = server_trace . map do |frame |
90
+ ex . set_backtrace ( backtrace + ex . backtrace )
91
+ end
92
+
93
+ def backtrace_from_remote ( server_trace )
94
+ server_trace . map do |frame |
81
95
next unless frame . is_a? ( Hash )
82
96
83
97
file = frame [ 'fileName' ]
@@ -91,8 +105,6 @@ def add_backtrace(ex)
91
105
92
106
"[remote server] #{ file } :#{ line } :in `#{ meth } '"
93
107
end . compact
94
-
95
- ex . set_backtrace ( backtrace + ex . backtrace )
96
108
end
97
109
98
110
def error_payload
You can’t perform that action at this time.
0 commit comments