如何使用Watir将值插入div下的文本字段中

时间:2011-05-16 22:15:56

标签: watir watir-webdriver

我使用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"

3 个答案:

答案 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等。

请参阅http://wiki.openqa.org/display/WTR/Frames了解详情

答案 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