在 selenium python 中通过 href 找到一个 link
Find a link by href in selenium python
让我们以 spotify 为例,因为我现在正在用它听音乐。
我想在下面的代码中获取 href 标签中包含的文本。
<a data-testid="nowplaying-track-link" href="/album/3xIwVbGJuAcovYIhzbLO3J">Toosie Slide</a>
我想要的是获取“/album/3xIwVbGJuAcovYIhzbLO3J”,或者如果这不可能,获取“Toosie Slide”以便将其存储在变量中以便与常量进行比较。
Spotify(以及许多其他网站)的困难在于此 href 标签在网页上多次出现。所以我只想得到 "nowplaying-track-link"
中包含的 link,它是 data-testid
.
好了,希望我说清楚了。
PS:我已经知道像这样的命令:driver.find_element_by_xpath,等等...但是我不能在这种情况下使用它们...
我不确定您所说的类型命令和无法使用它们是什么意思,但这就是您获取所需信息的方式:
element = driver.find_element_by_css_selector('[data-testid="nowplaying-track-link"]')
href = element.get_attribute('href')
element_text = element.text
如果你想把link放在一起,你可以这样做:
link = driver.current_url + href
让我们以 spotify 为例,因为我现在正在用它听音乐。
我想在下面的代码中获取 href 标签中包含的文本。
<a data-testid="nowplaying-track-link" href="/album/3xIwVbGJuAcovYIhzbLO3J">Toosie Slide</a>
我想要的是获取“/album/3xIwVbGJuAcovYIhzbLO3J”,或者如果这不可能,获取“Toosie Slide”以便将其存储在变量中以便与常量进行比较。
Spotify(以及许多其他网站)的困难在于此 href 标签在网页上多次出现。所以我只想得到 "nowplaying-track-link"
中包含的 link,它是 data-testid
.
好了,希望我说清楚了。
PS:我已经知道像这样的命令:driver.find_element_by_xpath,等等...但是我不能在这种情况下使用它们...
我不确定您所说的类型命令和无法使用它们是什么意思,但这就是您获取所需信息的方式:
element = driver.find_element_by_css_selector('[data-testid="nowplaying-track-link"]')
href = element.get_attribute('href')
element_text = element.text
如果你想把link放在一起,你可以这样做:
link = driver.current_url + href