如何将对象的父对象建立为页面对象中的对象



在页面对象文件中:

class ThisPage
include PageObject

我可以建立这样一个对象:

div(:user_dialog, :class => 'ud_dialog')

然而,在网站的域中,有许多带有:class => 'ud_dialog'的窗口在各种工作流中弹出。

我可以在绑定中找到对象。像这样撬

on(ThisPage).div_elements(:text => 'Are you sure you want to do this action?').first.parent.html

如何在页面文件中建立这样的窗口?

也就是说,有这样的语法吗:

div(:user_dialog, parent(:text => 'Are you sure you want to do this action?'))

对于复杂的定位器,例如定位父元素,可以使用块来获取元素。

如果您将页面对象中的div定义为:

div(:user_dialog){
div_elements(:text => 'Are you sure you want to do this action?').first.parent
}

然后你的页面可以做:

on(ThisPage).user_dialog_element.html

注意,由于您想要第一个匹配的div,您可以将其简化为:

div(:user_dialog){
div_element(:text => 'Are you sure you want to do this action?').parent
}

通过使用多个定位器(取决于html是什么),也可能更直接。您可以找到具有ud_dialog类并包含指定文本的div(部分匹配,因为可能还有其他文本):

div(:user_dialog, :class => 'ud_dialog', 
:text => /Are you sure you want to do this action?/)

相关内容

  • 没有找到相关文章

最新更新