Есть ли способ получить HTML-код веб-страницы, который генерируется на основе входных значений на другой веб-странице? - PullRequest
0 голосов
/ 15 июня 2019

Я пытаюсь получить HTML-код https://www.example.com/mcqRegionList, который в противном случае «не существует», но генерируется на основе значения, выбранного в раскрывающемся меню «Выбор уровня» на странице https://www.example.com/mcqLevelList.

Снимок HTML-кода https://www.example.com/mcqLevelList выглядит так:

<script>
    $(function() {
        $("#mcqLevel").change(function() {
            var levelCode= $('#mcqLevel option:selected').val();
             $("#levelCode").val(levelCode);
             $('#mcqMasterForm').attr('action', 'mcqRegionList');
             $("#mcqMasterForm").submit();
        });

        $("#mcqRegion").change(function() {
            var levelCode= $('#mcqLevel option:selected').val();
            var regionCode= $('#mcqRegion option:selected').val();
             $("#levelCode").val(levelCode);
             $("#regionCode").val(regionCode);
             $('#mcqMasterForm').attr('action', 'mcqCityList');
             $("#mcqMasterForm").submit();
        });

        $("#mcqCity").change(function() {
            var levelCode= $('#mcqLevel option:selected').val();
            var regionCode= $('#mcqRegion option:selected').val();
            var cityCode= $('#mcqCity option:selected').val();
             $("#levelCode").val(levelCode);
             $("#regionCode").val(regionCode);
             $("#cityCode").val(cityCode);
             $('#mcqMasterForm').attr('action', 'mcqCenterList');
             $("#mcqMasterForm").submit();
        });
    });

    function downloadMcqFile(levelCode,regionCode,cityCode,centerCode)
    {
         $("#levelCode").val(levelCode);
         $("#regionCode").val(regionCode);
         $("#cityCode").val(cityCode);
         $("#centerCode").val(centerCode);
         $('#mcqMasterForm').attr('action', "downloadMcqwisePdfFile");
         $("#mcqMasterForm").submit();

    }

    $('#example').DataTable( {
         scrollY: '29vh',
         scrollX: true,
         "searching": false,
         "ordering": false,
         scrollCollapse: true,
         paging: false,
         bInfo: false
    } );
</script>

И тогда у нас есть:

<thead>
  <tr align='center'>
    <th style="width: 30%">Select Level</th>
    <th style="width: 30%"> Select Region</th>
    <th style="width: 30%"> Select City</th>
  </tr>
  <tr align='center'>
    <th>
      <select name="levelCode" id="mcqLevel">
        <option value="-1">Select Level</option>
        <option value="05">UPPER</option>
        <option value="03">LOWER</option>
        <option value="01">MIDDLE</option>
        <option value="02">LEFT</option>
        <option value="04">RIGHT</option>
      </select>
    </th>
    <th>
      <select>
        <option value="">Select Region</option>
      </select>
    </th>
    <th>
      <select>
        <option value="">Select City</option>
      </select>
    </th>
  </tr>
</thead>

Пока я пробовалthis:

from selenium import webdriver
from selenium.webdriver.support.ui import Select

Stdriver = webdriver.Firefox()
Stdriver.get('https://www.example.com/mcqLevelList')

Select(Stdriver.find_element_by_tag_name("select")).select_by_index(2)
Stdriver.get('https://www.example.com/mcqRegionList')
Stdriver.find_element_by_id('mcqRegion').select_by_index(2)

Однако при появлении сообщения об ошибке в последней строке:

selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element: [id="mcqRegion"]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...