提交表单后Watir文本框输入不存在(重置为上一个文本框输入)

时间:2016-05-10 18:07:32

标签: javascript ruby watir

我在这个网站上做了一些拼抢:http://onthemap.ces.census.gov/

以下是我的代码在错误之前的设置:

sample_address = "1600 Amphitheatre Pkwy, Mountain View, CA 94043"
b= Watir::Browser.new :chrome
b.goto "http://onthemap.ces.census.gov"
b.text_field(:id => "search_value").set sample_address
b.span(:id => "search_button_label").click
Watir::Wait.until { b.a(:text => "Geocoder Results").exists? }
address_selector = sample_address.split(" ")[0..1].join(" ")
b.a(:text => /#{address_selector}/).click
Watir::Wait.until { b.div(:class => "olPopup").exists? }
b.span(:text => Selection").click

所以现在我要尝试插入2英里的“简单半径”框,其默认值为0.25

b.text_field(:name => "simple_r").set 2.0

文本框按预期更改为2.0。然后我尝试点击确认选择....

b.span(:text => "Confirm Selection").click

现在,突然之间“simple_r”值恢复到之前的值(0.25)并且我的脚本无用。

为了说明,如果我将我的watir对象连接到浏览器,然后我继续手动在“简单环半径”字段中键入“100.0”,那么拉出watir对象并再次运行此代码:

b.text_field(:name => "simple_r").set 2
b.span(:text => "Confirm Selection").click

“simple_r”半径的值将恢复为100。

这是一个显示错误的小视频直播。请注意,在截屏视频中,我没有点击任何按钮或手动输入任何文本。您需要将其切换到720p才能正常查看。 http://youtu.be/gdDZWHwXduA

1 个答案:

答案 0 :(得分:2)

似乎应该有JavaScript触发简单半径字段的模糊。但是,它似乎并没有持续发射。手动触发JavaScript解决了这个问题:

b.text_field(:name => "simple_r").value = 2
b.text_field(:name => "simple_r").fire_event(:onblur)

请注意,我只能在Firefox中一致地重现该问题。由于问题从未发生过,我无法在Chrome中测试修复程序。