2010-04-21 3 views
1

Я пытаюсь отправить форму на странице .asp, но Mechanize не распознает имя элемента управления. Форма код:Использование Python и Механизация с ASP-формами

<form id="form1" name="frmSearchQuick" method="post"> 
.... 
<input type="button" name="btSearchTop" value="SEARCH" class="buttonctl" onClick="uf_Browse('dledir_search_quick.asp');" > 

Мой код выглядит следующим образом:

br = mechanize.Browser() 
br.open(BASE_URL) 
br.select_form(name='frmSearchQuick') 
resp = br.click(name='btSearchTop') 

Я также попробовал последнюю строку как:

resp = br.submit(name='btSearchTop') 

ошибки я получаю:

raise ControlNotFoundError("no control matching "+description) ControlNotFoundError: no control matching name 'btSearchTop', kind 'clickable' 

Если я печатаю br, я получаю следующее: IgnoreControl (btSearc hTop =)

Но я не вижу этого нигде в HTML.

Любые советы о том, как отправить эту форму?

ответ

5

Кнопка не отправляет форму - она ​​вызывает некоторую функцию javascript.

Механизм не может запускать javascript, поэтому вы не можете использовать его, чтобы нажать эту кнопку.

Простой способ состоит в том, чтобы прочитать эту функцию самостоятельно и посмотреть, что она делает - если она просто отправляет форму, то, возможно, вы можете обойти ее, отправив форму без нажатия на что-либо.

0

Вам необходимо сначала осмотреть элемент, механизировать распознавание формы?

for form in br.forms(): 
     print form 
Смежные вопросы