首页 > 解决方案 > 无法在 DatePicker 使用 Selenium + Python 选择月份和年份

问题描述

实际上,我可以选择日期并输入值。

已经尝试使用其他链接中的一些解决方案:
1.从 datepicker 获取可用性
2. Python Selenium Date Picker
3. Python & Selenium 无法在 datepicker 中选择日期

当尝试选择月份和年份时仍然没有锁定以获得结果
在我的代码下方:

start_date = wait.until(EC.visibility_of_element_located((
    By.CSS_SELECTOR, "#departureDate_i")))
start_date.click() #Show Datepciker
browser.execute_script("document.getElementsByClassName('next')[0].click()")
current_month = browser.find_element_by_css_selector(".datepicker-months").text
print("current_month:", current_month)

以下 HTML 格式:

<div class="datepicker datepicker-dropdown dropdown-menu datepicker-orient-left datepicker-orient-top" style="display: none; top: 176.4px; left: 448.667px;">
   <div class="datepicker-days" style="display: block;">
      <table class=" table-condensed">
         <thead>
            <tr>
               <th class="prev" style="visibility: hidden;"></th>
               <th colspan="5" class="datepicker-switch">January 2019</th>
               <th class="next" style="visibility: visible;"></th>
            </tr>
            <tr>
               <th class="dow">Su</th>
               <th class="dow">Mo</th>
               <th class="dow">Tu</th>
               <th class="dow">We</th>
               <th class="dow">Th</th>
               <th class="dow">Fr</th>
               <th class="dow">Sa</th>
            </tr>
         </thead>
         <tbody>
            <tr>
               <td class="day disabled old">30</td>
               <td class="day disabled old">31</td>
               <td class="day disabled">1</td>
               <td class="day disabled">2</td>
               <td class="day">3</td>
               <td class="day today">4</td>
               <td class="day">5</td>
            </tr>
            <tr>
               <td class="day">6</td>
               <td class="day">7</td>
               <td class="day">8</td>
               <td class="day">9</td>
               <td class="day">10</td>
               <td class="day">11</td>
               <td class="day">12</td>
            </tr>
            <tr>
               <td class="day">13</td>
               <td class="day">14</td>
               <td class="day">15</td>
               <td class="day active">16</td>
               <td class="day">17</td>
               <td class="day">18</td>
               <td class="day">19</td>
            </tr>
            <tr>
               <td class="day">20</td>
               <td class="day">21</td>
               <td class="day">22</td>
               <td class="day">23</td>
               <td class="day">24</td>
               <td class="day">25</td>
               <td class="day">26</td>
            </tr>
            <tr>
               <td class="day">27</td>
               <td class="day">28</td>
               <td class="day">29</td>
               <td class="day">30</td>
               <td class="day">31</td>
               <td class="day new">1</td>
               <td class="day new">2</td>
            </tr>
            <tr>
               <td class="day new">3</td>
               <td class="day new">4</td>
               <td class="day new">5</td>
               <td class="day new">6</td>
               <td class="day new">7</td>
               <td class="day new">8</td>
               <td class="day new">9</td>
            </tr>
         </tbody>
         <tfoot>
            <tr>
               <th colspan="7" class="today" style="display: none;">Today</th>
            </tr>
            <tr>
               <th colspan="7" class="clear" style="display: none;">Clear</th>
            </tr>
         </tfoot>
      </table>
   </div>
   <div class="datepicker-months" style="display: none;">
      <table class="table-condensed">
         <thead>
            <tr>
               <th class="prev" style="visibility: hidden;"></th>
               <th colspan="5" class="datepicker-switch">2019</th>
               <th class="next" style="visibility: visible;"></th>
            </tr>
         </thead>
         <tbody>
            <tr>
               <td colspan="7" style=""><span class="month active">Jan</span><span class="month">Feb</span><span class="month">Mar</span><span class="month">Apr</span><span class="month">May</span><span class="month">Jun</span><span class="month">Jul</span><span class="month">Aug</span><span class="month">Sep</span><span class="month">Oct</span><span class="month">Nov</span><span class="month">Dec</span></td>
            </tr>
         </tbody>
         <tfoot>
            <tr>
               <th colspan="7" class="today" style="display: none;">Today</th>
            </tr>
            <tr>
               <th colspan="7" class="clear" style="display: none;">Clear</th>
            </tr>
         </tfoot>
      </table>
   </div>
   <div class="datepicker-years" style="display: none;">
      <table class="table-condensed">
         <thead>
            <tr>
               <th class="prev" style="visibility: hidden;"></th>
               <th colspan="5" class="datepicker-switch">2010-2019</th>
               <th class="next" style="visibility: visible;"></th>
            </tr>
         </thead>
         <tbody>
            <tr>
               <td colspan="7"><span class="year old disabled">2009</span><span class="year disabled">2010</span><span class="year disabled">2011</span><span class="year disabled">2012</span><span class="year disabled">2013</span><span class="year disabled">2014</span><span class="year disabled">2015</span><span class="year disabled">2016</span><span class="year disabled">2017</span><span class="year disabled">2018</span><span class="year active">2019</span><span class="year new">2020</span></td>
            </tr>
         </tbody>
         <tfoot>
            <tr>
               <th colspan="7" class="today" style="display: none;">Today</th>
            </tr>
            <tr>
               <th colspan="7" class="clear" style="display: none;">Clear</th>
            </tr>
         </tfoot>
      </table>
   </div>
</div>

非常感谢您提出如何处理的建议
谢谢

标签: pythonseleniumselenium-webdriver

解决方案


推荐阅读