【发布时间】:2020-11-05 08:10:39
【问题描述】:
我正在使用 Xpath 并尝试查找所有 div 类名为“day”的 td,不包括 td 类名为“invalid_day”的那些。
这适用于使用 selenium Xpath 仅选择所选月份中匹配的 div 类“日”的日历。忽略上个月或未来月份的任何 div 类“日”。
HTML
<tbody>
<tr>
<td class="invalid_day">
<div class="day">29</div>
<td class="invalid_day">
<div class="day">30</div>
<td class="invalid_day">
<div class="day">31</div>
<td>
<div class="day">1</div>
<td>
<div class="day">2</div>
<td>
<div class="day">3</div>
<td>
<div class="day">4</div>
</tr>
<tr>
#removed <td> 5 - 31 for brevity
<td class="invalid_day">
<div class="day">1</div>
</tr>
在搜索论坛后,我尝试了很多方法,都得到了 div class='day' 的 td。
然而,没有一个成功地过滤掉那些带有 td class='invalid_day'
尝试过的代码:
.find_elements_by_xpath('//td[./div[@class="day"]]')
返回: 29,30,31,1,2,3,...31,1
尝试过的代码:
.find_elements_by_xpath('//td[./div[@class="day"] and not[@class="invalid_day"]]')
返回: 空的
还尝试了 css_selector 方法:
.find_elements_by_css_selector('.day:not(.invalid_day)')
返回: 29,30,31,1,2,3,...31,1
我正在寻找的结果: 1,2,3,...31
提前致谢!
【问题讨论】:
标签: python selenium xpath calendar css-selectors