[英]Is it possible to drill down to an element with page object
我试图将Cheezy的页面对象gem用于所有内容,以便保持一致。 但是,我还没找到如何深入到这样的元素。 这里的情况是,所有相同的标签将有多个链接,因此您必须从可识别的内容中向下钻取。
@browser.p(:text => /#{app_name}/i).link(:text => 'Add').click
我正在寻找的代码将是这样的,以单击位于段落内部的链接,但是它不起作用。
p(:pgraph, id: => 'some-pgraph')
link(:lnk, text: => 'add')
self.pgraph.lnk
有没有办法用页面对象做到这一点?
谢谢亚当
您可以使用块来定义具有更复杂定位策略的访问器。
如果还要保留对以下段落的引用:
p(:pgraph, id: 'some-pgraph')
link(:lnk){ pgraph_element.link_element(text: 'add') }
或者,如果您不需要该段其他内容,则可以执行以下操作:
link(:lnk){ paragraph_element(id: 'some-pgraph').link_element(text: 'add') }
基本上,您可以使用带有嵌套元素的块来定义访问器,类似于在Watir中的访问器。
请注意,如果要在运行时动态指定id,则始终可以定义一种方法来单击链接,而不是使用访问器:
def click_link_in(paragraph_id)
paragraph_element(id: paragraph).link_element(text: 'add').click
end
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.