2013-04-03 144 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的網頁,這取決於它應採取哪些行動上,它可以取消設置電臺。但是,當您在該頁面上採取其他操作後,您可以始終讓腳本檢查它的狀態。