我使用set
在div下的文本字段中插入值。
以下是我没有成功使用的方法。这是我能够识别元素的唯一方法。当我尝试通过名称识别文本字段时无法识别。
@browser.div(:evaluation, :id => "evaluation_form_attributes").text_field(:id => "evaluation_form_name")
@browser.set('Teacher Evaluation Form')
显示以下错误:
undefined method `set' for #<Watir::IE:0x4dd9348>
这是HTML:
div id="evaluation_form_attributes"
评估名称:
input id="evaluation_form_name" type="text" size="50" name="evaluation_form[name]" maxlength="30"
答案 0 :(得分:3)
试试这个:
browser.text_field(:id => "evaluation_form_name").set 'Teacher Evaluation Form'
答案 1 :(得分:1)
是否涉及iframe?如果你知道那里的东西,并且你确定ID,并且watir找不到它,那么通常是因为页面的那一部分在一个框架内。
要处理框架内的元素,必须指定框架,然后指定元素
browser.frame(:how,what).element(:how,what).method等。
答案 2 :(得分:0)
要为文本字段设置值,您只需找到它并进行设置即可。您已经知道的设置部分(set
),因此您需要将找到文本字段的内容串在一起。
如果Zejiko的答案由于“无法定位元素”而无效,那么它不是设置失败,而是找到文本字段。使用Firebug(在Firefox中)或某种DOM工具包(工具&gt;开发者工具或IE8中的F12)来查找文本字段并查看它具有哪种属性。
确保ID确实为"evaluation_form_name"
。这是区分大小写并且对前导/尾随空格敏感。您可以尝试以下方法来扩大搜索范围:
@browser.text_field(:id => /evaluation/).set 'Teacher Evaluation Form'
这使用正则表达式来标识id。您可以搜索许多内容,而不仅仅是:id,您可以使用多个内容。例如:
@browser.text_field(:id => /eval/, :index => 2)
找到id为“eval”的第二个文本字段。
您可以在此处找到用于标识文本字段的内容:https://github.com/watir/watir/wiki/HTML-Elements-Supported-by-Watir