1

我曾经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"
4

3 回答 3

3

Try this:

browser.text_field(:id => "evaluation_form_name").set 'Teacher Evaluation Form'
于 2011-05-16T22:38:47.980 回答
1

可能涉及 iframe 吗?如果你知道那个东西在那里,并且你确定了它的 ID,但是 watir 找不到它,那么通常是因为页面的那部分在一个框架内。

要使用框架内的元素,您必须指定框架,然后指定元素

browser.frame(:how, what).element(:how, what).method 等

有关更多信息,请参见http://wiki.openqa.org/display/WTR/Frames

于 2011-05-21T00:31:43.237 回答
0

要为文本字段设置值,您只需找到并设置它。您已经知道的设置部分 ( set),因此您需要将找到文本字段的内容串在一起。

如果 Zejiko 的答案由于“无法定位元素”而不起作用,那么不是设置失败,而是在查找文本字段。使用 Firebug(在 Firefox 中)或某种 DOM 工具包(在 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

于 2011-05-17T08:23:38.123 回答