使用python提交Webform。如何选择单选按钮和复选框,然后提交?

时间:2018-08-01 15:37:28

标签: python mechanize

我正在使用机械化,并试图提交一个Web表单以自动化专用网络上的电源控制外围设备。但是,我无法从文档中弄清楚该如何做。这是我的图片形式,因为我将其放在下面的url变量中。

enter image description here

url = "http://192.168.0.1/remsw1.htm"
br = mechanize.Browser()
br.set_handle_robots(False) # ignore robots
br.open(url)
br._factory.is_html = True
forms = list(br.forms())
form = forms[0]
print form
br.select_form(nr=0)
br['tp'] = [0, 1]
br.submit()

我的控制台显示:

<get http://192.168.0.1/uswrem.cgi application/x-www-form-urlencoded
  <RadioControl(tp=[*1, 0])>
  <CheckboxControl(osw=[1, 2, 3, 4, 5, 6, 7, 8])>
  <SubmitControl(sbt=Apply) (readonly)>
  <IgnoreControl(<None>=<None>)>>

这是该页面的整个html:

<html>
   <head>
      <link rel="stylesheet" type="text/css" href="ymon.css">
      <title>swcontrol</title>
   </head>
   <body>
      Outlet Control
      <hr>
      <p></p>
      <form action="uswrem.cgi" method="get">
         <table border="1" cellspacing="1" align="center" width="60%">
            <tbody>
               <tr>
                  <td colspan="2">&nbsp;Action Type: <input type="radio" name="tp" value="1" checked="">Delayed <input type="radio" name="tp" value="0">Immediately</td>
               </tr>
               <tr>
                  <td width="25%"><input type="checkbox" name="osw" value="1"></td>
                  <td width="75%" class="chl">&nbsp;Turn On Outlet # 1</td>
               </tr>
               <tr>
                  <td><input type="checkbox" name="osw" value="2"></td>
                  <td class="chl">&nbsp;Turn On Outlet # 2</td>
               </tr>
               <tr>
                  <td><input type="checkbox" name="osw" value="3"></td>
                  <td class="chl">&nbsp;Turn On Outlet # 3</td>
               </tr>
               <tr>
                  <td><input type="checkbox" name="osw" value="4"></td>
                  <td class="chl">&nbsp;Turn On Outlet # 4</td>
               </tr>
               <tr>
                  <td><input type="checkbox" name="osw" value="5"></td>
                  <td class="chl">&nbsp;Turn On Outlet # 5</td>
               </tr>
               <tr>
                  <td><input type="checkbox" name="osw" value="6"></td>
                  <td class="chl">&nbsp;Turn On Outlet # 6</td>
               </tr>
               <tr>
                  <td><input type="checkbox" name="osw" value="7"></td>
                  <td class="chl">&nbsp;Turn On Outlet # 7</td>
               </tr>
               <tr>
                  <td><input type="checkbox" name="osw" value="8"></td>
                  <td class="chl">&nbsp;Turn On Outlet # 8</td>
               </tr>
               <tr>
                  <td colspan="2" align="left">&nbsp; <input type="submit" name="sbt" value="Apply">&nbsp; <input type="reset" value="Cancel"></td>
               </tr>
            </tbody>
         </table>
      </form>
      <p></p>
      <p></p>
      <hr>
   </body>
</html>

我可以阅读内容,但不确定如何发回邮件。 基本上,我只想将“动作类型:”无线电控件设置为[0,1](延迟并立即打开),并且我只希望第一个复选框进行切换(打开/关闭)。

有什么想法吗?

0 个答案:

没有答案