Как убедиться, что значения в раскрывающемся списке обновляются динамически и фиксируются - PullRequest
0 голосов
/ 09 апреля 2019

Я хочу автоматизировать веб-страницу с двумя выпадающими списками (штат и соответствующие районы). При выборе значения в первом раскрывающемся меню (раскрывающемся списке состояний) второе раскрывающееся меню (районы) обновляется соответствующими значениями районов соответствующего штата. Однако, когда я пытаюсь автоматизировать это, во втором цикле второе раскрывающееся меню не обновляется и по-прежнему отображает ранее выбранные значения. Я не могу понять, почему раскрывающийся список не может динамически обновляться, когда в первом раскрывающемся списке было выбрано новое значение, и как я могу заставить его работать

Я пробовал следующие методы в Python:

driver.implicitly_wait(2000)
driver.sleep(10)

Однако ни один из них не работает, и проблема сохраняется.

Selenium python code:

statelist=driver.find_element_by_xpath('//*[@id="stateId"]').click() 
state=Select(driver.find_element_by_id('stateId')) 
stoptions=state.options
for stindex in range(0,len(stoptions)): 
  state.select_by_index(stindex)
  driver.implicitly_wait(3000)
  select_district=Select(driver.find_element_by_id('districtId')) 
  dtoptions=select_district.options 
  driver.implicitly_wait(2000) 
  for index in range(0,len(dtoptions)): 
   select_district.select_by_index(index) 
   driver.find_element_by_id("searchbutton").click()

HTML код: Состояние:

<select name="stateId" size="1" onchange="javascript:getDistricts()" 
class="selBox" id="stateId"><option value="0">NCDRC</option>
<option value="7">Andaman Nicobar</option>
<option value="16">Andhra Pradesh</option>
<option value="25">Arunachal Pradesh</option>
<option value="5">Assam</option>
<option value="1">Bihar</option>

В зависимости от штата, выбора района:

<select name="districtId" size="1" class="selBoxD" id="districtId"><!-- 
<option value="-1">Select</option> -->
        <option value="0">NCDRC</option></select>

В соответствии с моей логикой, приведенной выше, я должен иметь возможность выбрать состояние, а затем выполнить итерацию по всем его значениям района, затем выбрать второе состояние и выполнить итерацию по всем его значениям района. Однако, когда я отлаживаю приведенный выше код, код работает нормально, если я не нажимаю кнопку поиска (driver.find_element_by_id ("searchbutton"). Click ()), но завершается ошибкой, когда я нажимаю кнопку поиска. Поскольку для получения ожидаемого результата я должен нажать на кнопку поиска и, следовательно, не могу понять, почему логика не срабатывает при нажатии кнопки поиска.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...