我选择了所有<a>
元素
<td>
元素
<td class="thread">
<i class="ter green"></i>
<a href="/forum/threads/12/">Something about...</a>
<p class="info">Author</p>
</td>
我使用以下内容:
driver.findElements(By.cssSelector("td.thread a"));
然而,我得到的元素比应有的要多得多。我想我必须只选择a
内的第一个td class="thread"
。我怎么能这样做?
答案 0 :(得分:2)
当您使用CSS Selector td.thread a
时,它会读取a
下的所有后代td.thread
。您更有可能想要的是td.thread > a
,它会读取a
的{{1}}个孩子。它仍有可能存在多个td.thread
,但根据整体HTML,您可能会得到更少的数据。
答案 1 :(得分:0)
thread = driver.find_element_by_class_name('thread')
correct_link = thread.find_element_by_tag_name('a').get_attribute('href')
print(correct_link)
>>> "/forum/threads/12/"