当我运行以下代码时出现DEPRECATION WARNING:
class MatchingPage
include PageObject
include Watir
div(:choose_competitor_dialog, :class => 'dijitDialogPaneContentArea pf-matching-competitors-dlg')
def competitor_name_select (name)
self.choose_competitor_dialog_element.label(:text => name).parent.checkbox(:class => 'dijitReset dijitCheckBoxInput').set
end
end
on(MatchingPage) do |matching_page|
matching_page.competitor_name_select 'shop.com'
end
警告说:
*弃权警告 您正在/home/spoonest/workspace/csv_ui_checker/pages.rb:77:in中调用名为label的方法 `competitor_name_select&#39 ;. 此方法在页面对象中不存在,因此会传递给驱动程序。 此功能将在不久的将来删除。 请更改您的代码以调用正确的页面对象方法。 * 如果您使用的是页面对象中不存在的功能,请请求添加。
如何在不收到此警告的情况下找到标签元素?
答案 0 :(得分:2)
如果Page Object元素不知道调用的方法,在本例中为label
,则该方法被委托给基础Watir(或Selenium)元素。发生这种情况时,您将收到警告。
要查找子标签元素,该方法在Watir中称为label
。但是,为了避免页面对象gem中的警告,它应该是label_element
:
def competitor_name_select (name)
self.choose_competitor_dialog_element.label_element(:text => name).parent.checkbox(:class => 'dijitReset dijitCheckBoxInput').set
end