使用Watir在div中找到没有唯一属性的li的文本

时间:2013-08-27 21:17:55

标签: watir

我正在尝试从li获取文本值,这是div的子项。我的问题是有多个具有相同类名的div。 Watir仅考虑第一个div。我尝试了以下方法:

ie.div(:class,'class1', :index => 0).lis.each do |li|
  puts li.text
end

我更改了索引,但它只打印出任何内容

处理完成,退出代码为0

如果有办法提取“订单号:12345678”,请告诉我。

HTML code:

<html>
 <body>
  <form name:"Form1" action="action.cfm">
   <table width = "100%" align = "center" cellPadding = "10">
     <tbody>
    <tr>
      <td width="33%" vAlign="top">
      <td width="33%" vAlign="top">
      <td width="33%" vAlign="top">
       <div class="class1">
       <div class="class2">
       <div class="class3">
       <div class="class4">
       <div class="class5">
       <div class="class4">
       <div class="class2">
       <div class="class1">
           <li>
          Text - Order Number: 12345678
      <td width="33%" vAlign="top">
        .
        .
        .
      <td width="33%" vAlign="top">

谢谢!

1 个答案:

答案 0 :(得分:0)

假设“订单号”是已知文本,您可以使用它来定位所需的元素。

如果“订单号”仅在列表项中出现一次,我建议绕过div并直接获取li:

browser.li(:text => /Order Number:/).text
#=> "Order Number: 12345678"

如果你需要div元素,你可以通过它的类和文本得到它:

parent_div = browser.div(:class => 'class1', :text => /Order Number:/)
parent_div.li.text
#=> "Order Number: 12345678"

请注意,我们使用正则表达式匹配文本,因为它允许部分匹配(即与使用完全匹配的字符串相比)。