Selenium:选择第一个内部元素

时间:2016-08-27 17:22:44

标签: html selenium testing selenium-webdriver

我选择了所有<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"。我怎么能这样做?

2 个答案:

答案 0 :(得分:2)

当您使用CSS Selector td.thread a时,它会读取a下的所有后代td.thread。您更有可能想要的是td.thread > a,它会读取a的{​​{1}}个孩子。它仍有可能存在多个td.thread,但根据整体HTML,您可能会得到更少的数据。

CSS Selector reference

答案 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/"