2013-07-02 1 views
0

양식에서 3 개의 선택 필드를 채우려고합니다. 기계로 선택한 필드 형식으로 채우기

br.select_form(name='frmentermemorableinformation1') br['frmentermemorableinformation1:strEnterMemorableInformation_memInfo1'] = ['g']

나는 다음과 같은 오류가 프로그램을 실행할 수 있습니다.

ItemNotFoundError: insufficient items with name 'g'

는 관련 형태의 시작 3 개 선택 입력의 제이다. 정확히 내가 잘못 뭐하는 거지

<form id="frmentermemorableinformation1" name="frmentermemorableinformation1" method="post" action="/personal/a/logon/entermemorableinformation.jsp" class="validationName:(frmentermemorableinformation1) validate:()" autocomplete="off" enctype="application/x-www-form-urlencoded"> <fieldset class="memInfoSelect clearfix"><div class="formField validate:(oneSelectFieldRequired) validationName:(memorableInformation) clearfix"><div class="formFieldInner"><div class="clearfix"><label for="frmentermemorableinformation1:strEnterMemorableInformation_memInfo1">Character 5 &#160;</label><select id="frmentermemorableinformation1:strEnterMemorableInformation_memInfo1" name="frmentermemorableinformation1:strEnterMemorableInformation_memInfo1"><option value="-">Select</option><option value="&amp;nbsp;a">&nbsp;a</option><option value="&amp;nbsp;b">&nbsp;b</option><option value="&amp;nbsp;c">&nbsp;c</option><option value="&amp;nbsp;d">&nbsp;d</option><option value="&amp;nbsp;e">&nbsp;e</option><option value="&amp;nbsp;f">&nbsp;f</option><option value="&amp;nbsp;g">&nbsp;g</option><option value="&amp;nbsp;h">&nbsp;h</option><option value="&amp;nbsp;i">&nbsp;i</option><option value="&amp;nbsp;j">&nbsp;j</option><option value="&amp;nbsp;k">&nbsp;k</option><option value="&amp;nbsp;l">&nbsp;l</option><option value="&amp;nbsp;m">&nbsp;m</option><option value="&amp;nbsp;n">&nbsp;n</option><option value="&amp;nbsp;o">&nbsp;o</option><option value="&amp;nbsp;p">&nbsp;p</option><option value="&amp;nbsp;q">&nbsp;q</option><option value="&amp;nbsp;r">&nbsp;r</option><option value="&amp;nbsp;s">&nbsp;s</option><option value="&amp;nbsp;t">&nbsp;t</option><option value="&amp;nbsp;u">&nbsp;u</option><option value="&amp;nbsp;v">&nbsp;v</option><option value="&amp;nbsp;w">&nbsp;w</option><option value="&amp;nbsp;x">&nbsp;x</option><option value="&amp;nbsp;y">&nbsp;y</option><option value="&amp;nbsp;z">&nbsp;z</option><option value="&amp;nbsp;0">&nbsp;0</option><option value="&amp;nbsp;1">&nbsp;1</option><option value="&amp;nbsp;2">&nbsp;2</option><option value="&amp;nbsp;3">&nbsp;3</option><option value="&amp;nbsp;4">&nbsp;4</option><option value="&amp;nbsp;5">&nbsp;5</option><option value="&amp;nbsp;6">&nbsp;6</option><option value="&amp;nbsp;7">&nbsp;7</option><option value="&amp;nbsp;8">&nbsp;8</option><option value="&amp;nbsp;9">&nbsp;9</option></select></div>

, 나는이 문제했지만 난 그냥 '&amp;nbsp;g''g' 교체와 같은 오류가 발생하는 g 넣다의 시작 &amp;nbsp;를 추가했습니다. 감사.

답변

0

시도 '& g'..................

나를 위해 작동합니다 '&nbsp;g'를 (목록 내부)

난 몰라 파이썬 코드에서 올바른 값이 무엇인지 정확하게 파악할 수있는 쉬운 방법이 있다고 생각하십시오. 그런 가치관은 일반적으로 보이지 않습니다. 난 그냥이 값은 어떻게 생각하는지 인쇄 할 기계화를 사용 : HTML 내부의 불법 특정 문자가 있습니다

import mechanize 

br = mechanize.Browser() 
br.open("http://localhost:8080/1.htm") 
br.select_form(name='frmentermemorableinformation1') 

select = br.form.find_control("frmentermemorableinformation1:strEnterMemorableInformation_memInfo1", 
        type='select') 

for item in select.items: 
    print item.attrs['value'] 

--output:-- 
- 
&nbsp;a 
&nbsp;b 
&nbsp;c 
&nbsp;d 
&nbsp;e 
&nbsp;f 
&nbsp;g 
... 
... 

I guess I should look up some html to understand why it wanted me to enter the string rather than the value and what &nbsp; does and why amp isnt present in the string version.

. 예를 들어 태그 시작 부분처럼 보이기 때문에 그 중 하나는 '<'입니다. 하지만 'x < 3'을 html 페이지에 표시하려면 어떻게해야합니까? Html은 'html 엔티티 (html entities)'를 사용하여 html 내에 잘못된 문자를 포함시키는 구문을 제공합니다. 귀하의 페이지에 '<'문자를 포함 시키려면 html 엔티티 &lt; (이하 "미만")을 사용하십시오. Html 엔티티는 '&'으로 시작하고 그 뒤에 불법 문자를 나타내는 숫자 또는 일부 문자가오고 세미콜론으로 끝납니다. HTML은 '&'를 생각하기 때문에 -

HTML 엔티티는 '&'로 시작하기 때문에

, 그건 당신이 당신의 페이지의 '&'문자를 표시 할 때 당신이 당신의 HTML의 '&'를 쓸 수 있다는 것을 의미합니다 html 엔티티의 시작입니다. 따라서 ("앰퍼샌드") 일 수있는 '&'에 대해 html 엔티티를 사용해야합니다.

html 엔티티 &nbsp; ("non-breaking space")이 있는데, html로 공백을 만듭니다. 일반적으로 html은 공백을 모두 없애기 때문에 붕괴되지 않는 공백을 만드는 데 &nbsp;이 사용됩니다. 그러나 옵션의 값 속성에는 '&'으로 시작하지 않으므로 html 엔티티가 아니므로 'nbsp;'라고 쓰여 있으므로 참고 용으로 사용 된 일련의 문자 일뿐입니다. 값.

& (represented by an html entity as required) 

및 문자 :

nbsp;g 

사람들은 정말 이상한 값입니다 그래서 각 옵션의 값의 조합입니다.

+0

ItemNotFoundError : 이름이 '& g'인 항목이 충분하지 않습니다. – Diofsi

+0

공간이 필요하지 않으며 동일한 오류가 발생했습니다. 의미가있는 경우 대괄호없이 시도 했으므로 'TypeError : ListControl, 시퀀스를 설정해야합니다.' 이것을 2 개의 별도 의견으로 보내주십시오. – Diofsi

+0

'[ '  g']'일하면 올바른 정보를 넣고 다음 페이지로 이동합니다. 나는 왜 내가 값이 아닌 문자열을 입력하고 왜'& nbsp;'이 무엇인지, 그리고 왜 앰프가 문자열 버전에 존재하지 않는지 이해하기 위해 html을 찾아야한다고 생각한다. – Diofsi