2011-05-16 73 views
1

我使用set将值插入到div下的文本字段中。如何使用Watir将值插入到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

你终于能找到text_field了吗? – highBandWidth 2011-06-09 00:16:09

回答

3

试试这个:

browser.text_field(:id => "evaluation_form_name").set 'Teacher Evaluation Form' 
+0

感谢您的快速回复!我以前尝试过这种方法,但当我尝试访问元素Watir :: Exception :: UnknownObjectException:无法找到元素,使用{:id =>“evaluation_form_name”} – Anca 2011-05-16 22:54:40

+0

请确保ID拼写正确,并且还搜索页面代码以确保它是唯一的并且不在页面的其他地方使用。每个HTML标准ID在页面中应该是唯一的。试图通过ID值识别的函数往往会失败,页面违反HTML标准,并且ID值不是唯一的 – 2011-05-18 21:21:22

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

+1

谢谢你的答案..仍然无法通过id或名称来识别文本字段。奇怪的是,我使用相同的方法来识别其他网页上的文本字段,它工作正常..只是与这一个我有问题 – Anca 2011-05-18 21:54:37

+0

你可以尝试通过索引独自识别它,看它是否可以找到,或通过一些其他属性。如果它是用来造成问题的形式,那么它是否仍然存在。您可以先识别容器(div),然后在div中使用索引(例如,div中的第3个文本字段是.div(:id =>'imadiv').text_field(:index => 3))。如果没有这些工作,你需要发布一个链接或一些HTML,所以我们可以看到它的外观,或失败,你可以尝试xpath!此外,请确保它不是一个时间问题(试图找到文本字段存在之前) – kinofrost 2011-05-20 08:10:26

1

是否有可能参与的iframe?如果你知道这个东西在那里,并且你确定了这个ID,并且Watir找不到它,那么通常这是因为页面的这个部分在一个框架内。

拥有作为一个框架内的元素,您必须指定的帧,则该元素

browser.frame(:怎么样,什么).element(:怎么样,什么)。方法等

查看http://wiki.openqa.org/display/WTR/Frames了解更多信息

+0

那么你怎么能在iframe内导航? – highBandWidth 2011-06-09 00:11:33

+1

看到我刚刚编辑它时添加到答案中的链接。或谷歌使用像:watir wiki框架 – 2011-06-09 04:45:14

相关问题