在Watir中,如何从一部分文本中获取全文?

时间:2012-04-27 19:30:37

标签: watir watir-webdriver

我有一部分HTML看起来类似于:

<table><tbody><tr>
<td><div> Text Goes Here </div></td>
<td> ... rest of table

没有ID,没有标题,没有任何描述符可以轻松识别包含文本的div。

当页面上发生错误时,错误将插入“Text Goes Here”所在的位置(除非发生错误,否则不存在任何文本)。每个错误都包含“有效”一词。 示例:“表单必须包含有效名称”或“选择了无效的日期范围”

我目前的Watir代码如下:

if browser.frame(:index => 0).text.includes? "valid"
  msg = # need to get full text of message
  return msg
else
  return true
end

有没有办法在这种情况下获得全文? 基本上:返回包含文本“valid”的元素的全文?

使用:Watir 2.0.4,Webdriver 0.4.1

2 个答案:

答案 0 :(得分:2)

鉴于你提供的结构,因为div经常被使用,我倾向于使用正则表达式查找表格单元格,正如Dave在他的回答中所示。除非你有很多嵌套表,否则它更有可能只返回你想要的文本。

如果有效&#39;可能会出现在其他地方,你可能想提供一个稍大的文本样本来寻找

。浏览器(:cell =&gt; / valid /)。text

答案 1 :(得分:1)

试试这个

return browser.div(:text => /valid/).text

return browser.table.div(:text => /valid/).text

如果未找到有效,则应返回nil。

相关问题