2010-10-12 87 views
0

我是Watir自动化测试的新手,希望为下拉获得一些帮助。在我们的网站上,我们有一个状态下拉列表,您可以在其中输入第一个字母状态(在我的例子中,C代表加利福尼亚),并将其缩小到以C开头的所有状态。一旦你有了列表,你需要点击正确的状态。但我在选择正确的状态时遇到困难。Firewatir:Firewatir脚本从下拉列表中选择一个项目

(下面是从我们的网站的HTML:


<div class="x-form-field-wrap x-trigger-wrap-focus" id="ext-gen202" style="width: 166px;"> 
<input type="hidden" id="entityStateCode" name="entityStateCode" value=""> 
<input type="text" id="ext-comp-1005" autocomplete="off" size="24" class=" x-form-text x-form-field x-form-focus"> 

我用下面的自动化方案,但这些都不是给我什么,我在寻找:

@ browser.text_field(:id,“ext-comp-1005”)。value =(“CA”)

@ browser.text_field(:id,“ext-comp-1005”).s等( “CA”)

@ browser.text_field(:ID => “EXT-COMP-1055”:指数=> 5).SET “CA”

我真的很感激,如果你可以点我走向正确的方向。

感谢

回答

0

我遇到过类似的情况。在我的情况下,DIV内部有一个TABLE,它在动态下拉菜单中为每个项目分别放置一行。所以,如果是这样的话对你,那么你就需要使用这样的访问项目:

@browser.text_field(:id,"ext-comp-1055").set "C" 
table = @browser.div(:id, "ext-gen336").table(:index, 1) 
puts "First entry value: #{table[1][1].text}" 
table[2][1].click # second entry 

尝试打印出在运行时的DIV的HTML,看看你需要与之交互哪些细节如果这不起作用。

0

你没有告诉是什么问题,这是不够的:

都未给我什么,我 寻找

这应该进入CA转换为文本字段:

browser.text_field(:id => "ext-comp-1005").set("CA") 

如果将文本输入到错误的文本字段中,请更改:id => "ext-comp-1005"

如果它正在输入正确的文本字段的文本,但状态列表没有出现,您可能必须触发一些JavaScript事件。看看How to find out which JavaScript events fired?的问题。

+0

感谢您回复我的问题。实际上,对于text_field完美地工作,但在我的情况下,我有自动完成下拉列表,所以当我使用上述方法时,它将值设置为失败的目的CAA 。我尝试使用div但没有帮助。我厌倦了使用div,但这不起作用。以下是我使用的代码@ browser.text_field(:id,“ext-comp-1055”)。设置“C”,一旦下拉菜单显示状态, CI使用@ browser.div(:id =>“ext-gen336”,:index => 2).click请让我知道我是否做错了什么。谢谢! – 2010-10-14 18:37:05

+0

我还是不明白这个问题。 – 2010-10-18 10:23:41

相关问题