我有一个按钮(type =“radio”),此按钮上有Javascript。
我使用xpath找到了按钮:
browser.element(:xpath, n2).wait_until_present
browser.element(:xpath, n2).fire_event "onclick"
假设我必须在循环中单击相同的按钮100次,并且80%的时间失败。它有一段时间没有任何问题。单击按钮后,当我向下移动浏览器进行其他单击时,此按钮单独取消单击(清除)。 当我在那个页面上时,我需要这个按钮一直保持点击状态。
我尝试添加延迟,但没有帮助。有没有其他方法来处理这个问题。
答案 0 :(得分:2)
Watir提供了与单选按钮类型输入元素交互的具体方法,请参阅http://rubydoc.info/gems/watir-webdriver/Watir/Radio
除非你没有别的选择,否则不要使用xpath作为定位器,如果做得不对,它的丑陋,脆弱,并且难以理解。对于无线电元素,通常通过值或文本
来标识- 使用http://www.echoecho.com/htmlforms10.htm
上的示例设置奶酪收音机
browser.radio(:value => "Cheese").set
检查它的状态使用.set?它将返回true为假
puts browser.radio(:value => "Cheese").set?
请注意,如果页面上有javascript,则根据所采取的操作,可能会取消设置收音机。但是,在该页面上执行其他操作后,您可以始终让脚本检查其状态。