使用label方法时,为什么会出现弃用警告?

时间:2014-10-27 15:50:36

标签: ruby page-object-gem

当我运行以下代码时出现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 ;.    此方法在页面对象中不存在,因此会传递给驱动程序。    此功能将在不久的将来删除。    请更改您的代码以调用正确的页面对象方法。   * 如果您使用的是页面对象中不存在的功能,请请求添加。

如何在不收到此警告的情况下找到标签元素?

1 个答案:

答案 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