python selenium 通过标签文本定位
- 背景
今天在爬取历史数据时,需要选定特定日期,但是日期在不同行数会导致xpath路径不是递增的,是通过每7天增加1行来实现的,想要通过更改td[7]方括号里的数字来实现对应日期就不可能了,而且对于不同月份,1号所对应的星期也不一样,这就需要想办法构造或寻找其他规律来实现输入特定日期自动点击对应日期。
3号://*[@id="ui-datepicker-div"]/table/tbody/tr[1]/td[7]/a
10号://*[@id="ui-datepicker-div"]/table/tbody/tr[2]/td[7]/a


- 思路
一开始想通过构造一个日期函数,来自动识别每月1号是星期几,再判断对应的日期在第几行,思索了一会儿,发现对时间转换很不熟悉,同时觉得这个方法比较繁琐,就又去将源代码仔细观察了一下,希望发现别的规律,最终发现每个日期对应的标签值就是日期值,于是就想着可不可以通过标签值来定位。

- 解决办法
百度了一下,还真可以实现,还非常简单
self.driver.find_element_by_xpath('//*[@id="ui-datepicker-div"]/table/tbody//td/a[text() = 5]').click()
使用xpath进行相对路径以及模糊搜索定位特定文本所在位置,特此记录。
1951



被折叠的 条评论
为什么被折叠?



