0

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

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

我更改了索引,但它什么也没打印

进程以退出代码 0 结束

请让我知道是否有办法提取“订单号:12345678”。

HTML 代码:

<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">

谢谢!

4

1 回答 1

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"

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

于 2013-08-28T15:23:18.790 回答