문제

Python (2.6)과 Mechanize (0.1.11)로 웹 테스트 스크립트를 작성하고 있습니다. 내가 작업하는 페이지에는 다음과 같은 선택 필드가있는 HTML 양식이 있습니다.

<select name="field1" size="1">
    <option value="A" selected>A</option>
    <option value="B">B</option>
    <option value="C">C</option>
    <option value="D">D</option>
</select>

Mechanize에서 다음과 같이 시도하면 다음과 같습니다.

browser.form['field1'] = ['E']

그런 다음 오류가 발생합니다. ClientForm.ItemNotFoundError: insufficient items with name 'E'

"변조 데이터"Firefox 확장으로 수동으로 할 수 있습니다. 파이썬으로 이것을 수행하고 기계화하는 방법이 있습니까? 어떻게 든 Mechanize가 실제로 제출하고 싶은 가치가 있다고 Mechanize를 설득 할 수 있습니까?

도움이 되었습니까?

해결책

ClientForm의 용기와 함께 찌른 후에는 다른 항목을 추가하는 데 속이는 것처럼 보입니다.

선택 필드의 경우 이와 같은 것이 작동하는 것 같습니다.

xitem = ClientForm.Item(browser.form.find_control(name="field1"), 
        {'contents':'E', 'value':'E', 'label':'E'})

마찬가지로 라디오 버튼 컨트롤의 경우

xitem = ClientForm.Item(browser.form.find_control(name="field2"),
        {'type':'radio', 'name':'field2', 'value':'X'})

항목 이니셜 라이저는 지정된 컨트롤에 대한 항목 목록을 자동으로 업데이트하므로 항목이 나타나려면 올바르게 항목 만 만들면됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top