Capturing Error From Appium
I'm running RubyMine 8.0.3, Ruby 2.2.1, and Appium 8.0.2 on a MacBook to control an app on an Android tablet. Appium is used to inspect the XML for the screens.
The Appium command find_element(:xpath, '//path1/path2/element') throws an error NoSuchElementError if the element is not found and then stops the test.
I want to be able to capture the Appium error and not have the test fail automatically. For example, a "Next Page" button would be "missing" on the last page in a series, but checking for it in Appium would crash the test.
Here's what I've tried so far (which didn't work):
class MissingElement < StandardError
end
def unknown_element
element = find_element(:xpath, '//android.webkit.WebView[1]/android.woidget.Button[6]')
if element.class = nil.class
raise MissingElemenet,'elemenet does not exist'
end
end
Then /^I try to find a missing element: (.*?).$/ do |arg1|
puts 'Unknown Element #{arg1}'
begin
unknown_element
rescue MissingElement => error
puts 'Error #{error.message}'
end
end
Thanks in advance.
Please sign in to leave a comment.