Reputation: 879
I have the following document structure:
<table class="month1" cellspacing="0" border="0" cellpadding="0">
<tbody class="">
<tr><td><div time="1511650969812" data-tooltip="" class="day lastMonth valid">26</div></td><td><div time="1511737369812" data-tooltip="" class="day lastMonth valid">27</div></td><td><div time="1511823769812" data-tooltip="" class="day lastMonth valid">28</div></td><td><div time="1511910169812" data-tooltip="" class="day lastMonth valid">29</div></td><td><div time="1511996569812" data-tooltip="" class="day lastMonth valid">30</div></td><td><div time="1512082969812" data-tooltip="" class="day toMonth valid">1</div></td><td><div time="1512169369812" data-tooltip="" class="day toMonth valid">2</div></td></tr>
<tr><td><div time="1512255769812" data-tooltip="" class="day toMonth valid">3</div></td><td><div time="1512342169812" data-tooltip="" class="day toMonth valid">4</div></td><td><div time="1512428569812" data-tooltip="" class="day toMonth valid">5</div></td><td><div time="1512514969812" data-tooltip="" class="day toMonth valid">6</div></td><td><div time="1512601369812" data-tooltip="" class="day toMonth valid">7</div></td><td><div time="1512687769812" data-tooltip="" class="day toMonth valid">8</div></td><td><div time="1512774169812" data-tooltip="" class="day toMonth valid">9</div></td></tr>
<tr><td><div time="1512860569812" data-tooltip="" class="day toMonth valid">10</div></td><td><div time="1512946969812" data-tooltip="" class="day toMonth valid">11</div></td><td><div time="1513033369812" data-tooltip="" class="day toMonth valid">12</div></td><td><div time="1513119769812" data-tooltip="" class="day toMonth valid real-today">13</div></td><td><div time="1513206169812" data-tooltip="" class="day toMonth valid">14</div></td><td><div time="1513292569812" data-tooltip="" class="day toMonth valid">15</div></td><td><div time="1513378969812" data-tooltip="" class="day toMonth valid">16</div></td></tr>
<tr><td><div time="1513465369812" data-tooltip="" class="day toMonth valid">17</div></td><td><div time="1513551769812" data-tooltip="" class="day toMonth valid">18</div></td><td><div time="1513638169812" data-tooltip="" class="day toMonth valid">19</div></td><td><div time="1513724569812" data-tooltip="" class="day toMonth valid">20</div></td><td><div time="1513810969812" data-tooltip="" class="day toMonth valid">21</div></td><td><div time="1513897369812" data-tooltip="" class="day toMonth valid">22</div></td><td><div time="1513983769812" data-tooltip="" class="day toMonth valid">23</div></td></tr>
<tr><td><div time="1514070169812" data-tooltip="" class="day toMonth valid">24</div></td><td><div time="1514156569812" data-tooltip="" class="day toMonth valid">25</div></td><td><div time="1514242969812" data-tooltip="" class="day toMonth valid">26</div></td><td><div time="1514329369812" data-tooltip="" class="day toMonth valid">27</div></td><td><div time="1514415769812" data-tooltip="" class="day toMonth valid">28</div></td><td><div time="1514502169812" data-tooltip="" class="day toMonth valid">29</div></td><td><div time="1514588569812" data-tooltip="" class="day toMonth valid">30</div></td></tr>
<tr><td><div time="1514674969812" data-tooltip="" class="day toMonth valid">31</div></td><td><div time="1514761369812" data-tooltip="" class="day nextMonth valid">1</div></td><td><div time="1514847769812" data-tooltip="" class="day nextMonth valid">2</div></td><td><div time="1514934169812" data-tooltip="" class="day nextMonth valid">3</div></td><td><div time="1515020569812" data-tooltip="" class="day nextMonth valid">4</div></td><td><div time="1515106969812" data-tooltip="" class="day nextMonth valid">5</div></td><td><div time="1515193369812" data-tooltip="" class="day nextMonth valid">6</div></td></tr></tbody> </table>
Essentially a table, listing all the days of the pre-selected month. I need selenium with python to select and click on one of these days.
I've tried several options, currently I am experimenting with something like:
days = driver.find_element_by_class_name("month1")
days.find_element_by_xpath(".select[@td='6']").click()
The problem is that I can't just select based on a single attribute, since there's an identical month2
table in the webpage. I need the link to refer to month1
.
Upvotes: 1
Views: 43
Reputation: 473873
You can "scope" your search inside the "month1" by prepending your expression with .//
:
days.find_element_by_xpath(".//td[div='6']").click()
Note that here I'm checking the text of the div
element which holds the day value for a cell.
Upvotes: 2