9

I want to fill a form using python mechanize. form looks like:

<POST https://10.20.254.39/cloud_computing/vmuser/migrate_vm/cli multipart/form-data
  <TextControl(vm=cli)>
  <TextControl(chost=10.20.14.39)>
  <SelectControl(dhost=[*, 28, 27])>
  <CheckboxControl(live=[on])>
  <CheckboxControl(undefinesource=[on])>
  <CheckboxControl(suspend=[on])>
  <SubmitControl(<None>=Submit) (readonly)>
  <HiddenControl(_formkey=85819e5a-02bb-42c8-891f-3ddac485438b) (readonly)>
  <HiddenControl(_formname=migrate_create) (readonly)>>

How do i set the value of live or undefinesource (checkbox) to True(ticked) or False(untick) Items of live and undefinsource are:

>>> print br.form.controls[4].get_items()
[<Item name='on' id='migrate_undefinesource' checked='checked' name='undefinesource' type='checkbox' id='migrate_undefinesource' value='on' class='boolean'>]
>>> print br.form.controls[3].get_items()
[<Item name='on' id='migrate_live' checked='checked' name='live' type='checkbox' id='migrate_live' value='on' class='boolean'>]
Infinite Recursion
  • 6,511
  • 28
  • 39
  • 51
Jatin Kumar
  • 2,635
  • 9
  • 36
  • 46

1 Answers1

12

One way that I have done it is

br.find_control("live").items[0].selected=True
murgatroid99
  • 19,007
  • 10
  • 60
  • 95