刚刚开始使用Watir-WebDriver,遇到并遇到问题。
1) Goto "https://www.smiles.com.br/home"
2) How to get/set values to drop down selections like selecting number of adults in "Adulto"
最初选择列表是隐藏的,但是当单击文本字段时,它会在浏览器中显示。 但是,当我尝试使用单击并检查其存在时,它返回false
1) b.text_field(:id => "inputOrigin").click
2) irb(main):049:0> b.a(:id => 'yui_patched_v3_11_0_1_1467245841395_1777').exist?
=> false
由于它实际上不是选择列表,我该如何设置值? 提前谢谢。
答案 0 :(得分:0)
ID是动态的,因此每次都会更改。看起来它可能基于时间,但这应该是非常独特的:
b.link(id: /^yui_patched_v3_11_0_1_/)
答案 1 :(得分:0)
点击<input id="inputOrigin">
后,您需要执行另一次点击以触发“下拉列表”列表。否则,您将收到element not visible
错误。你可以这样做:
require 'watir-webdriver'
b = Watir::Browser.new :chrome
b.goto('https://www.smiles.com.br/home')
b.text_field(:id => "inputOrigin").when_present.click
b.div(:id => "dk_container_qtdAdult").when_present.click #trigger "dropdown" menu
b.div(:class => "adult").link(:text => "02").when_present.click
# b.div(:class => "adult").link(:data_dk_dropdown_value => "02").click #an alternative
选择后,您可以使用.text
方法获取该选项:
puts b.div(:id => "dk_container_qtdAdult").link(:class => "dk_toggle dk_label").text
最后,您可以使用正则表达式定位器,但通过尝试识别更多离散(和 - 理想 - 唯一)页面元素,您可能会获得更多成功。