我在黄瓜(1.1.9)测试中使用watir-webdriver(0.5.3).我试图验证首字母缩略词的文本值.标签.代码是遗留的,并且计划将其更改为 div或者 span标签,但同时我必须处理它.我第一次尝试: @browser.acr
@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>
我很感激有关如何提高测试性能的任何想法.
这个班级名称可以预测吗?你可以从一个设定的部分加上你要验证的文本构建它(在上面的例子中它是一样的)并且那样做吗?acronym = 'E100' browser.element(:class, 'editable select fillwith:exp_codes default:#{acronym}'.text.should == acronym