python - 使用 selenium 按表选择链接

标签 python selenium selenium-webdriver

我有以下文档结构:

<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>

本质上是一个表格,列出了预选月份的所有天数。我需要带有 python 的 selenium 来选择并单击其中一天。

我尝试了多种选择,目前我正在尝试以下方法:

days = driver.find_element_by_class_name("month1")
days.find_element_by_xpath(".select[@td='6']").click()

问题是我不能只根据单个属性进行选择,因为网页中有一个相同的 month2 表。我需要引用 month1 的链接。

最佳答案

您可以通过在表达式前面添加 .//:在“month1”内“确定搜索范围”:

days.find_element_by_xpath(".//td[div='6']").click()

请注意,这里我正在检查 div 元素的文本,该元素保存单元格的日期值。

关于python - 使用 selenium 按表选择链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47783834/

相关文章:

python - 使用 selenium python 复制文本区域

python - 如何修复属性错误: 'NoneType' object has no attribute 'click'

java - 如何在使用 chrome 驱动程序/firefox 驱动程序时更改 Webdriver 中的文件下载位置

java - 为什么我总是将页面中的单选按钮计数为零?

python - Selenium 单击到下一页直到最后一页

javascript - 如何在 PyV8 中加载 Nodejs 模块?

java - 使用 selenium webdriver 按类名和标记名查找元素

python - 如何使用 Selenium 选择属性为 "checked"且值为 "checked"的复选框?

python - 在 Django Rest Framework 中保存相关的嵌套对象

降序排列的 Python 日志文件