特别提交执行JS的表格

时间:2017-05-10 14:42:41

标签: javascript html forms http

我有一个允许我选择日期(年,月,日)的表单

enter image description here

HTML代码段如下所示:

<form id="lottotab1" name="lottotab1">
  <input id="action" name="action" value="winningnumbers" type="hidden" />
  <input id="searchStartDate" name="searchStartDate" type="hidden" />
  <input id="searchEndDate" name="searchEndDate" type="hidden" />
  <!-- Search Date -->
  <div class="searchDate">
    <table>
      <tbody>
        <tr>
          <td/>
          <td align="center">
            <td align="center">
              <td align="center">
                <td/>
                <td align="center" />
                <td align="center" />
                <td/>
        </tr>
        <tr>
          <td>
            <td>
              <select id="lottoStartDateYear" class="" name="lottoStartDateYear" onchange="javascript:funChangeDate()">
                <option value="2008">2008</option>
                <option value="2009">2009</option>
                <option value="2010">2010</option>
                <option value="2011">2011</option>
                <option value="2012">2012</option>
                <option value="2013">2013</option>
                <option value="2014">2014</option>
                <option value="2015">2015</option>
                <option value="2016">2016</option>
                <option value="2017">2017</option>
              </select>
            </td>
            <td>
              <select id="lottoStartDateMonth" class="" name="lottoStartDateMonth" onchange="javascript:funChangeDate()">
                <option value="01">Jan</option>
                <option value="02">Feb</option>
                <option value="03">Mar</option>
                <option value="04">Apr</option>
                <option value="05">May</option>
                <option value="06">Jun</option>
                <option value="07">Jul</option>
                <option value="08">Aug</option>
                <option value="09">Sep</option>
                <option value="10">Oct</option>
                <option value="11">Nov</option>
                <option value="12">Dec</option>
              </select>
            </td>
            <td>
              <select id="lottoStartDateDay" class="" name="lottoStartDateDay">
                <option value="-1">Day</option>
                <option value="1">1</option>
                <option value="2">2</option>
                <option value="3">3</option>
                <option value="4">4</option>
                <option value="5">5</option>
                <option value="6">6</option>
                <option value="7">7</option>
                <option value="8">8</option>
                <option value="9">9</option>
                <option value="10">10</option>
                <option value="11">11</option>
                <option value="12">12</option>
                <option value="13">13</option>
                <option value="14">14</option>
                <option value="15">15</option>
                <option value="16">16</option>
                <option value="17">17</option>
                <option value="18">18</option>
                <option value="19">19</option>
                <option value="20">20</option>
                <option value="21">21</option>
                <option value="22">22</option>
                <option value="23">23</option>
                <option value="24">24</option>
                <option value="25">25</option>
                <option value="26">26</option>
                <option value="27">27</option>
                <option value="28">28</option>
                <option value="29">29</option>
                <option value="30">30</option>
                <option value="31">31</option>
              </select>
            </td>
            <td/>
            <td/>
            <td/>
            <td>
              <!-- For Ticket: 4500 -->
              <a href="#" name="getWinningNumbers" onclick="setValueLoadGame();searchWinningNumbers();showSearch();">
                <img style="margin:0px 12px" src="/wps/PA_NYSLNumberCruncher/css/images/logo/numTrackerGoPurple.gif" />
              </a>
            </td>
        </tr>
        <tr>
      </tbody>
    </table>
  </div>

我正在尝试以编程方式更改日期并提交表单。我知道我可以通过点击年/月/日并使用Selenium来改变它。然而,这是一个麻烦。

有没有办法通过在浏览器中发送http请求来刺激更改日期并点击“开始”按钮?

我知道表单包含各种名称和属性,但我不确定如何组合这些值/属性以形成有效的http请求,该请求会更改日期并自动提交表单。

此外,我观察到当您选择日期范围时页面执行某种Javascript这是否意味着它无法通过纯http请求进行刺激?

由于

2 个答案:

答案 0 :(得分:1)

如果您只想要数字数据,可以直接获取。如果您在加载页面时打开开发人员工具并观察XHR请求,您将看到该页面如何获取数据:

http://nylottery.ny.gov/wps/PA_NYSLNumberCruncher/NumbersServlet?game=win4&action=winningnumbers&startSearchDate=04/2017&endSearchDate=06/2017&pageNo=1&last=0&perPage=50&sort=0

答案 1 :(得分:0)

如果页面使用jQuery,那么您可以在浏览器控制台中执行以下操作:

$("#lottoStartDateYear option[value=2013]").attr('selected', 'true');
$("#lottoStartDateMonth option[value=08]").attr('selected', 'true');
$("#lottoStartDateDay option[value=13]").attr('selected', 'true');
setValueLoadGame();
searchWinningNumbers();
showSearch();