Ada*_*806 2 ruby watir cucumber watir-webdriver page-object-gem
我正在尝试使用Cheezy的页面对象gem来保持一致.但是我无法找到如何向下钻取这样的元素.这里的情况是,所有相同的标签会有多个链接,因此您必须从可识别的东西向下钻取.
@browser.p(:text => /#{app_name}/i).link(:text => 'Add').click
Run Code Online (Sandbox Code Playgroud)
我正在寻找的代码是这样的,点击段落内的链接,但它不起作用.
p(:pgraph, id: => 'some-pgraph')
link(:lnk, text: => 'add')
self.pgraph.lnk
Run Code Online (Sandbox Code Playgroud)
有没有办法用页面对象做到这一点?
谢谢,亚当
您可以使用块来定义具有更复杂定位策略的访问器.
如果您还想保留对段落的引用:
p(:pgraph, id: 'some-pgraph')
link(:lnk){ pgraph_element.link_element(text: 'add') }
Run Code Online (Sandbox Code Playgroud)
或者,如果您不需要该段落用于其他事情,您可以:
link(:lnk){ paragraph_element(id: 'some-pgraph').link_element(text: 'add') }
Run Code Online (Sandbox Code Playgroud)
基本上,您可以使用具有嵌套元素的块来定义类似于Watir中的访问器.
请注意,如果要在运行时动态指定id,则始终可以定义单击链接的方法,而不是使用访问者:
def click_link_in(paragraph_id)
paragraph_element(id: paragraph).link_element(text: 'add').click
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
846 次 |
| 最近记录: |