使用Watir检索文本

时间:2012-11-21 09:27:23

标签: rubygems automated-tests watir-webdriver

我有像

这样的html div
<div class="main-div font-color page-padding">
  <div>
    <table>
      <tbody>
        <tr>
          <td style="vertical-align:middle">
            <img src="resources/images/info.png" id="indicator" class="sd-img" style="vertical-align:middle;margin-top:-3px;margin- left:-4px;">
            &nbsp; 
            <font color="#1F91D0"> <b>{{someMessage}}</b></font>
          </td> 
        </tr>
      </tbody>
    </table>
  </div>
  <br/>
</div>

我正在运行Ruby-Watir Automation脚本。我无法在{{someMessage}}<b></b>中访问包含文字<td></td>的元素。如何检索上面的文本值{{someMessage}}

我尝试过:

def getElementById(elementId)
  if @browser.element(:id => elementId).exists?
    @element = @browser.element(:id => elementId)
  end
  @element
end

elementId = id的{​​{1}}。但我无法分配td值?

任何指针或示例代码都会有帮助吗?感谢。

引用@element ID和<td> <table>并访问该元素但

2 个答案:

答案 0 :(得分:2)

您说您尝试使用td属性访问id元素,但在您提供的HTML中,唯一具有id属性的元素是img 。如果是这种情况,您可以使用id img属性来访问文字:

@browser.img(:id => "indicator").parent.text

答案 1 :(得分:0)

@Zeljko Filipin,谢谢。我后来尝试了这个 -

def getTableElementById(tableId, rowId, colId)      
  @table = @browser.table(:id => tableId)
  @element = @table.tr(:id => rowId).td(:id => colId)
  @element
end 

有效!