-
Notifications
You must be signed in to change notification settings - Fork 9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Allow missing elements to be inspected #187
base: master
Are you sure you want to change the base?
Conversation
@@ -103,6 +103,14 @@ def method_missing(name, *args, &block) | |||
end | |||
|
|||
implicit_element.__send__(name, *args, &block) | |||
rescue AePageObjects::LoadingElementFailed | |||
raise unless %w(to_s inspect).include? name.to_sym |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I included both to_s
and inspect
here because I figured that both methods would be better off returning a string rather than raising an error. I could be convinced otherwise.
Can you add tests? I tried to reproduce this in an existing selenium test for a simple project and wasn't been able to, so I think there is more to it than what was described above. |
89a55e4
to
eb7072f
Compare
@rmacklin you are right, the root cause of the flakiness was something else. The fix I've made is still valid as the failing I've added unit tests for the fix. |
I'm still not totally clear on the root issue here. But if this is limited to |
Seems like a pretty good improvement. I think things would become even cleaner if we collapsed |
When
assert_predicate
assertions failMinitest
will inspect the target object as part of the error message generation.Currently AePageObjects will pass the
inspect
call on to theElement
which will attempt to load the DOM element and will result inAePageObjects::LoadingElementFailed
being thrown.This PR allow
inspect
to be called onElementProxy
objects where the DOM element is absent without throwing an error.