【问题标题】:Watir text box input not persisting after submitting form (resetting to previous text box input)提交表单后,Watir 文本框输入不保留(重置为以前的文本框输入)
【发布时间】:2016-09-05 20:50:36
【问题描述】:

我正在这个网站上做一些抓取: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 对象连接到浏览器,然后我继续在 Simple Ring radius 字段中手动输入“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,我会的。
  • 谢谢查克!我尽我所能
  • @boulder_ruby,这个问题在 Chrome 中是否一直发生在你身上?我仍然只能在 Firefox 中重现该问题。我使用的是 Windows 而不是 Mac,但我预计不会有太大的不同。

标签: javascript ruby watir


【解决方案1】:

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

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

请注意,我只能在 Firefox 中始终如一地重现该问题。我无法在 Chrome 中测试修复,因为问题从未发生过。

【讨论】:

  • 一定要喜欢那些浏览器特有的行为
  • 这对我不起作用。目前使用cliclick 用于mac 的shell 工具:(
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-11-15
  • 2011-01-18
  • 1970-01-01
  • 2013-05-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多