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