我使用以下代码行来获取元素的utime。从输出中我可以看到我瞄准正确的区域并且utime属性存在于那里,但我仍然收到None
的输出。我已经尝试多次重写data-utime
属性,以确保它的格式正确。我在这里缺少什么?
代码:
timeStampBox = post.find_element_by_css_selector('.fsm.fwn.fcg')
timeStampBox = timeStampBox.find_element_by_class_name('_5pcq')
print(timeStampBox.get_attribute('innerHTML'))
print(timeStampBox.get_attribute('data-utime'))
输出:
<abbr title="Monday, September 4, 2017 at 6:11am" data-utime="1504530675" data-shorten="1" class="_5ptz"><span class="timestampContent" id="js_15">September 4 at 6:11am</span></abbr>
None
答案 0 :(得分:1)
abbr
元素是innerHTML
的timeStampBox
,但 data-utime
不是属性{{ 1}}。
以下是我如何模仿你的情况:
timeStampBox
<html>
<body>
<div><abbr title="Monday, September 4, 2017 at 6:11am" data-utime="1504530675" data-shorten="1" class="_5ptz"><span class="timestampContent" id="js_15">September 4 at 6:11am</span></abbr></div>
</body>
</html>
元素是div
元素的容器。我可以假装它是你的abbr
元素。
timeStampBox
识别>>> from selenium import webdriver
>>> driver = webdriver.Chrome()
>>> driver.get('file://c:/scratch/temp.htm')
并获取其timeStampBox
。和以前一样,我得到了innerHTML
元素。
abbr
>>> timeStampBox = driver.find_element_by_tag_name('div')
>>> timeStampBox.get_attribute('innerHTML')
'<abbr title="Monday, September 4, 2017 at 6:11am" data-utime="1504530675" data-shorten="1" class="_5ptz"><span class="timestampContent" id="js_15">September 4 at 6:11am</span></abbr>'
为data-utime
,因为None
中不存在此属性。
timeStampBox
但它在>>> timeStampBox.get_attribute('data-utime')
。
abbr
我们故事的道德:直接搜索>>> abbr = driver.find_element_by_tag_name('abbr')
>>> abbr.get_attribute('data-utime')
'1504530675'
。