2013-04-03 145 views
1

我有一个按钮(type =“radio”),并且此按钮上有Javascript。
我所在的按钮使用XPath:确保按钮被点击

browser.element(:xpath, n2).wait_until_present 
browser.element(:xpath, n2).fire_event "onclick" 

比方说,我必须点击同一按钮,在循环100次,而它的失败80%的时间。它有一些工作没有任何问题。点击按钮后,当我向下移动浏览器进行其他单击时,此按钮将自行单击(清除)。 我需要这个按钮来保持点击所有时间,而我在该页面上。

我尝试添加延迟,但没有帮助。有没有其他办法来解决这个问题。

+2

要么将​​我们指向可以复制问题的页面,要么创建页面并将其放置在公共位置,例如Dropbox。 –

+0

就这样,你知道明智的命名法。 Button是一种HTML输入元素,并且也很容易将出现的链接项(通过图像文件)显示为按钮。收音机是一种完全不同类型的输入控制,旨在允许您从众多中挑选出一个选项 –

+0

请向我们展示HTML的相关部分 –

回答

2

的Watir提供了具体方法与单选按钮类型的输入元素交互,看到http://rubydoc.info/gems/watir-webdriver/Watir/Radio

不要使用XPath作为定位,除非你有没有其他选择,它的丑陋,脆,如果不这样做的权利,和硬有意义的。在http://www.echoecho.com/htmlforms10.htm

无线电元素,您通常由价值确定,或文本

--Using的例子要设置的奶酪无线电

browser.radio(:value => "Cheese").set 

要检查它的状态使用.SET?它将返回假

真正
puts browser.radio(:value => "Cheese").set? 

注意,如果有JavaScript的网页,这取决于它应采取哪些行动上,它可以取消设置电台。但是,当您在该页面上采取其他操作后,您可以始终让脚本检查它的状态。