Используя Selenium (Python), введите дату рождения в разных форматах. - PullRequest
0 голосов
/ 06 мая 2020

Я хочу вставить значения в поле даты рождения. У меня есть решение, если у меня вводятся следующие 3 поля, НО если второе поле становится оператором select, а также с коротким названием месяца, я немного не понимаю, как это сделать.

Мои входные параметры (значения): ["06","05","2020"]

Если у меня есть дата рождения с 3 входами, я сейчас делаю вот что:

for op in value:
    index = value.index(op) + 1
    fch_input = browser.find_elements_by_xpath('//td[contains(text(),"Date of birth")]')[0].find_elements_by_xpath('./following::input[{}]'.format(index))
    if fch_input:
        if fch_input[0].is_displayed():
            fch_input[0].clear()
            fch_input[0].send_keys(op)
return

Это HTML:

<tr>
   <td class="formtext" colspan="3"><span class="required">*</span>Date of birth</td>
   <td class="formtext" colspan="3">
      <input type="text" name="person.dateOfBirth.day" value="" maxlength="2" class="entryField2"> 
       -
      <select class="entryField6" name="person.dateOfBirth.month">
         <option></option>
         <option value="1">Jan</option>
         <option value="2">Feb</option>
         <option value="3">Mar</option>
         <option value="4">Apr</option>
         <option value="5">May</option>
         <option value="6">Jun</option>
         <option value="7">Jul</option>
         <option value="8">Aug</option>
         <option value="9">Sep</option>
         <option value="10">Oct</option>
         <option value="11">Nov</option>
         <option value="12">Dec</option>
      </select>
      -
      <input type="text" name="person.dateOfBirth.year" value="" maxlength="4" class="entryField4">
   </td>
</tr>

PS Пожалуйста, не предлагайте использовать names, так как вся идея сделать этот код универсальным c, также для покрытия разных страниц.

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