繁体   English   中英

是否有可能深入到具有页面对象的元素

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM