如何使用 Ruby Page-Object Gem 访问名称中带有连字符的自定义元素

How to access custom element with hypen in name using Ruby Page-Object Gem

我有一些 angular 元素,我想映射它们。尝试这样做

element('ng-select', id: 'id1')

收到关于 Watir 的错误

NameError: undefined local variable or method 'ng' for #<Watir::HTMLElement:0x04defcc8>

没错。错误说“ng”,而不是“ng-select”。是什么赋予了?如何指定 ng-select 标签?我知道我可以用 element 替换 ng-select 但这对我来说似乎太笼统了。页面对象 gem 已经没有对 angular 标签的原生支持所以我想描述一下。

#element中的第一个参数用作在 Watir 中定位元素的方法名称。例如:

element('element', id: 'id1') #=> translates to browser.element(id: 'id1')
element('div', id: 'id1') #=> translates to browser.div(id: 'id1')

对于'ng-select',盲目应用导致运行以下。由于 #ng 不存在,因此出现异常。

browser.ng - select(id: 'id1')

从技术上讲,第一个参数是相应的 Watir 方法,而不仅仅是标签名称。如果您想要自定义标签名称,请将其作为定位器的一部分传递:

element(:element, tag_name: 'ng-select', id: 'id1')