使用ruby和watir检查html元素是否为true?

时间:2012-09-14 14:30:01

标签: ruby watir

目前我有这个:

def burnChart()
   @browser.div(:id => "container").div(:id => "header").img(:class => "cogMenuHover").click
   @browser.div(:id => "container").div(:id => "header").div(:class => "sbTopMenu").li(:class => "taskMenuOp", :index =>1).click

  if 
    assert(@browser.send(type.to_sym, :class, "highcharts-grid").exists?)
    puts 'Chart has been found!'
  else
    puts 'No chart was generated'
  end
end

最初我以为我必须使用to_css?但是从我看到的其他人使用它,这是不正确的我不确定。

任何人都可以帮助我,我只想检查一个类是否存在并返回true或fasle来记录错误或确认

1 个答案:

答案 0 :(得分:2)

我相信你想要:

def burnChart()
   @browser.div(:id => "container").div(:id => "header").img(:class => "cogMenuHover").click
   @browser.div(:id => "container").div(:id => "header").div(:class => "sbTopMenu").li(:class => "taskMenuOp", :index =>1).click

  #Due to using IE, it looks like .exists? has to be used.
  if @browser.element(:class, "highcharts-grid").exists?
    puts 'Chart has been found!'
  else
    puts 'No chart was generated'
  end
end

请注意:

  • 元素的检查应该是if语句的条件。
  • 将支票更改为.present?。只要元素在页面上,.exists?就会返回true,但通常您还要检查它是否可见。
  • 切换为@browser.element而不是@browser.send。你可以做你正在做的事情,但你没有在任何地方定义type,所以似乎没必要。