2011-08-31 73 views
12

我有一個特別困難的形式,我試圖點擊搜索按鈕,似乎無法做到這一點。下面是從頁面源代碼的形式:單擊一個按鈕與Ruby機械化

<input type="image" name="" src="http://images.example.com/WOKRS53B4/images/search.gif" align="absmiddle" border="0" onclick="return check_form_inputs('UA_GeneralSearch_input_form','search');" title="Search" alt="Search" class=""> 

我試圖做標準機械化點擊動作:

login_page = agent.click(homepage.link_with(:text => "Search")) 

這是因爲按鈕使用JavaScript?如果是這樣,有什麼建議?

回答

5

這不是一個鏈接,它是一個按鈕。您需要做的是查找表單(例如,使用form_with),然後查找ImageButton和submit它。

+0

您是否有一些代碼演示瞭如何使用圖像輸入來提交表單? – Kris

+1

我認爲你應該考慮提出一個適當的問題,因爲它似乎與這個問題沒有關係。 – Serabe

32

我也一直在努力,尤其是因爲我的表單有多個按鈕。

有多種方式提交一個表單(與許多使用「form_with」塊),但幫我:

# get the form 
form = agent.page.form_with(:name => "my-form") 
# get the button you want from the form 
button = form.button_with(:value => "Search") 
# submit the form using that button 
agent.submit(form, button) 

查看更多信息here

此外,還要確保你升級到最新的機械化。我使用的是mechanize 1.x,它給了我上面代碼的「未定義方法」錯誤。