Tengo un formulario que me permite seleccionar una fecha (año, mes, día)

enter image description here

El fragmento de HTML tiene el siguiente aspecto:

<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>

Estoy tratando de cambiar programáticamente la fecha y enviar el formulario. Sé que podría hacer esto usando Selenium haciendo clic en el año / mes / día y cambiándolo así. Sin embargo, esto es una molestia.

¿Hay alguna forma de estimular el cambio de fecha y hacer clic en el botón "Ir" enviando una solicitud http en el navegador?

Sé que el formulario contiene varios nombres y atributos, pero no estoy seguro de cómo combinar estos valores / atributos para formar una solicitud http válida que cambie la fecha y envíe el formulario automáticamente.

Además, observé que la página ejecuta algún tipo de Javascript cuando selecciona el rango de fechas. ¿Significa esto que no se puede estimular a través de una solicitud http pura?

Gracias

0
Little Kevin 10 may. 2017 a las 17:42

2 respuestas

La mejor respuesta

Si solo desea los datos de los números, puede obtenerlos directamente. Si abre herramientas de desarrollador y observa las solicitudes de XHR cuando carga la página, verá cómo la página obtiene los datos:

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
imjosh 10 may. 2017 a las 18:56

Si la página usa jQuery, puede hacer lo siguiente en la consola del navegador:

$("#lottoStartDateYear option[value=2013]").attr('selected', 'true');
$("#lottoStartDateMonth option[value=08]").attr('selected', 'true');
$("#lottoStartDateDay option[value=13]").attr('selected', 'true');
setValueLoadGame();
searchWinningNumbers();
showSearch();
0
Alexander 10 may. 2017 a las 16:40