2011-08-31 10 views
12

Tôi có một biểu mẫu đặc biệt khó khăn mà tôi đang cố gắng nhấp vào nút tìm kiếm và dường như không thể làm điều đó. Đây là mã đối với hình thức từ mã nguồn trang web:Nhấp vào một nút với Ruby Mechanize

<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=""> 

Tôi cố gắng để thực hiện hành động mechanize nhấp chuột tiêu chuẩn:

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

Đây có phải là vì các nút sử dụng javascript? Nếu có, đề nghị nào?

Trả lời

5

Nó không phải là một liên kết, nó là một nút. Những gì bạn cần làm là tìm biểu mẫu (ví dụ: với form_with) và sau đó tìm kiếm ImageButton và submit nó.

+0

Bạn có một số mã chứng minh cách sử dụng đầu vào hình ảnh để gửi biểu mẫu không? – Kris

+1

Tôi nghĩ bạn nên cân nhắc đặt câu hỏi thích hợp vì nó dường như không liên quan đến câu hỏi này. – Serabe

32

Tôi cũng gặp khó khăn với điều này, đặc biệt là vì biểu mẫu của tôi có nhiều nút.

Có nhiều cách để submit một form (với nhiều sử dụng một khối 'form_with'), nhưng điều này đã giúp tôi:

# 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) 

Xem thêm thông tin here

Ngoài ra, hãy chắc chắn rằng bạn nâng cấp lên cơ chế mới nhất. Tôi đã sử dụng cơ giới 1.x, điều đó đã cho tôi lỗi "phương pháp chưa xác định" cho mã ở trên.