page-object
page-object copied to clipboard
Make tag name optional in dynamic element locator
As noted in a recent Stack Overflow question, the dynamic element locator requires the tag name to be specified. This is pretty awkward looking when the tag name is unknown:
class MyPage
include PageObject
def do_stuff
element('element', class: 'class_name').text
end
end
We should make the tag name optional. Instead the tag name should be specified like any other locator:
# When the tag name is unknown
element(class: 'class_name')
# When the tag name is known
element(tag_name: 'custom_tag', class: 'class_name')
This is complicated by the fact that the "tag" is actually used to determine the corresponding Watir method - see https://stackoverflow.com/a/59076811/1200545.