Html Selenium:选择第一个内部元素
我选择所有Html Selenium:选择第一个内部元素,html,selenium,testing,selenium-webdriver,Html,Selenium,Testing,Selenium Webdriver,我选择所有元素中的所有元素 <td class="thread"> <i class="ter green"></i> <a href="/forum/threads/12/">Something about...</a> <p class="info">Author</p> </td> 然而,我得到的元素比应有的多得多。我想我必须在td class=“thread”内只选择
元素中的所有
元素
<td class="thread">
<i class="ter green"></i>
<a href="/forum/threads/12/">Something about...</a>
<p class="info">Author</p>
</td>
然而,我得到的元素比应有的多得多。我想我必须在
td class=“thread”
内只选择第一个a
。如何执行此操作?当您使用CSS选择器td.thread a
时,它读取td.thread
下的任何子体a
。您更可能需要的是td.thread>a
,它读取td.thread
的子a
。仍然有可能存在多个a
,但是根据整个HTML,您可能会得到更少
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/"
当您使用CSS选择器
td.thread a
时,它读取td.thread
下的任何子体a
。您更可能需要的是td.thread>a
,它读取td.thread
的子a
。仍然有可能存在多个a
,但是根据整个HTML,您可能会得到更少
如果只想查找单个元素,为什么要使用
findElement
而不是findElement
??你到底想要什么??您是否希望使用HTML中提供的单个a
?如果您只想查找单个元素,为什么要使用findElement
而不是findElement
??你到底想要什么??你想要一个你用HTML提供的a
?虽然这个代码片段可以解决这个问题,但确实有助于提高你文章的质量。请记住,您将在将来回答读者的问题,这些人可能不知道您的代码建议的原因。还请尽量不要用解释性注释挤满您的代码,因为这会降低代码和解释的可读性!虽然这个代码片段可以解决这个问题,但它确实有助于提高文章的质量。请记住,您将在将来回答读者的问题,这些人可能不知道您的代码建议的原因。还请尽量不要用解释性注释挤满您的代码,因为这会降低代码和解释的可读性!
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/"