如何使用 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')
我有一些 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')