【问题标题】:Find the text of a li inside a div which has no unique attributes using Watir使用 Watir 在没有唯一属性的 div 中查找 li 的文本
【发布时间】:2013-08-28 23:23:18
【问题描述】:

我正在尝试从 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">

谢谢!

【问题讨论】:

  • :index =&gt; 0 更改为 :index =&gt; 1 应该会返回文本,但是——从长远来看——这可能是一个脆弱的解决方案。
  • 作为一个人,您如何知道要获取哪些文本?该页面必须有更多内容,还是您只是查找文本订单号?无论哪种方式,都有助于提供更完整的 html 示例。 li 元素似乎不太可能嵌套在同一类的多个 div 中。请记住,像这样的问题需要一个好的 html 示例才能获得有用的答案。
  • @Justin Ko Html 与上面的结构相同,我刚刚更改了类名。订单号在此订单确认页面生成,并作为项目符号嵌套在表格中。此项目符号项(li)是 div 的子项。但是,除了它们包含的文本之外,还有 2 个具有确切属性的 Div。我希望有一些方法可以区分 div 和它们包含的文本,然后导出 li 的文本。
  • `
    文本 - 应用程序信息
  • 文本 - 订单号:12345678
  • `
  • 任何地方都没有结束标签?

标签: watir


【解决方案1】:

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

如果“订单号”在列表项中只出现一次,我建议绕过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"

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

【讨论】:

  • 这个解决方案对我有用!十分感谢大家! browser.li(:text => /Order Number:/).text #=> "Order Number: 12345678"
猜你喜欢
  • 2013-05-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-10
  • 2018-08-24
  • 2020-07-12
  • 2012-01-09
  • 1970-01-01
相关资源
最近更新 更多