首页 > 解决方案 > 使用 selenium.webdriver.find_element_by_xpath() 返回 span 标签的值

问题描述

我正在尝试从正在播放的 youtube 视频中提取当前视频时间。

我检查了 youtube 页面以找到存储当前时间值的元素。这是下面的元素。

span class="ytp-time-current">0:03</span>

我必须在 span 之前和之后删除严格的不等号,因为它返回 0:03 并且看不到整个标签。

我尝试使用搜索查找值wd.find_element_by_class_name("ytp-time-current") but returns none

我还复制了元素的 xpath:

//*[@id="movie_player"]/div[20]/div[2]/div[1]/div/span[1]

并尝试使用 _xpath() 查找值

我试过的代码

from selenium import webdriver
wd = webdriver.Chrome(executable_path = r'pathtodriver')
wd.get('https://www.youtube.com/watch?v=N__fRbG84fI')

search = wd.find_element_by_class_name('ytp-time-current') 

value = wd.find_element_by_xpath('//*[@id="movie_player"]/div[22]/div[2]/div[1]/div/span[1]').get_attribute('Value')

我希望得到一个整数值或至少一个字符串。但两种情况都没有返回。

标签: selenium-webdriver

解决方案


标签没有<span>value 属性。你可能想做:

value = wd.find_element_by_xpath('//*[@id="movie_player"]/div[22]/div[2]/div[1]/div/span[1]').text

(我假设这是 Python 绑定)


推荐阅读