Python与selenium:如何获取元素中的第一个字符串

时间:2017-04-10 04:38:18

标签: python selenium datetime xpath

HTML

<td rowspan="2" class="en">17-04-10<br>00:30</td>

Python代码:

lb3 = driver.find_element_by_xpath("//td[@rowspan='2']")
print (lb3.text)

结果是:

 17-04-10
 00:30

我希望获得类似17-04-10 00:30的字符串格式,或者只是获取日期17-04-10,因为我需要修改为datetime对象。

3 个答案:

答案 0 :(得分:2)

传统上你可能需要使用

//td[@rowspan='2']/text()[1]

获取17-04-10,但selenium并未支持此语法,因此您可以使用Python处理输出,如下所示:

print (lb3.text.split()[0])

获取17-04-10

print(" ".join(lb3.text.split()))

获取17-04-10 00:30

答案 1 :(得分:1)

使用替换功能替换(&#34; \ n&#34;,&#34;&#34;)或text.replace(&#34; \ r \ n&#34;,&#34;&# 34)

答案 2 :(得分:0)

import re
date=re.search(r'(\d+\S\d+\S\d+)', lb3 , re.I)
date=(date.groups())
print(date)

此代码将以您描述的格式(日期)找到第一个对象并将其取出并将其存储为列表。请注意,如果您抓取的页面网页替换其月/年分隔符,则此代码也将起作用。

regex命令(第2行)将产生一个匹配对象。第3行将其转换为列表对象。

当然,这确实需要创建一个额外的列表,这可能是低效的。

更多信息:https://docs.python.org/2/library/re.html