我在 Cucumber (1.1.9) 测试中使用 watir-webdriver (0.5.3)。我正在尝试验证<acronym>
标签的文本值。该代码是遗留代码,并且有计划将其更改为<div>
或<span>
标记,但同时我必须处理它。我第一次尝试:
@browser.acronym(:id => /expense_code(.*)/).text
我收到以下错误:
NoMethodError: undefined method `acronym' for #<Watir::Browser:0x33e9940>
我在 Watir 代码中四处寻找标签对象是如何创建的,发现它们似乎是根据 HTML5 规范动态创建的,但后来我还发现一条评论element.rb
指出它们不再是从规范创建的. 无论如何,我看不到继承<span>
对象并将其称为<acronym>
对象的简单方法。因此,我研究了替代方案,并找到了元素对象。
@browser.element(:id => /expense_code(.*)/).text
此代码有效,但遍历我的页面大约需要一分钟。我现在坚持使用正则表达式,因为标签 id 实际上是动态生成的,我目前没有办法找出这些值。这就是标签的实际外观:
<acronym class="editable select fillwith:exp_codes default:E100"
title="Expense Code: Expenses" id="expense_code114_582_10777">
E100 </acronym>
对于如何提高测试性能的任何想法,我将不胜感激。