4

我有一部分 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

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

使用:Watir 2.0.4,Webdriver 0.4.1

4

2 回答 2

2

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

此外,如果“有效”可能出现在其他地方,那么您可能需要提供稍大的文本样本来查找

. 浏览器(:cell => /valid/).text

于 2012-04-28T07:12:01.727 回答
1

尝试这个

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

或者

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

如果没有找到有效的,它应该返回零。

于 2012-04-27T20:33:58.080 回答