打印所有文本,只需要一个

我有一个 html 文件:


<div class="panel-heading">

Some Text1

<strong>Hello</strong>

</div>

<div>

Some Text2

Some Text3

<strong>

Hi1

Hi2

</strong

我想使用 selenium 在我的 python 脚本中只打印Hello,所以我尝试了:


element = driver.find_element_by_xpath("//div[@class='panel-heading']")    

for element in driver.find_elements_by_tag_name('strong'):

    print (element.text)

结果是:


你好


嗨1


嗨2


但我只想:


你好


炎炎设计
浏览 175回答 3
3回答

LEATH

你可以简单地使用element = driver.find_element_by_xpath("//div[@class='panel-heading']")print(element.find_element_by_tag_name('strong').text)从所需打印第一个 strong文本div请注意,这for element in driver.find_elements_by_tag_name('strong')意味着迭代页面上的所有 strong节点。您需要替换driverwithelement来迭代strong定义的 WebElement 的后代:for strong in element.find_elements_by_tag_name('strong'):&nbsp; &nbsp; print(strong.text)

达令说

你的代码给你列表。所以只需使用列表的第一个元素,它会给你“你好”。element&nbsp;=&nbsp;driver.find_elements_by_tag_name('strong')[0]

波斯汪

你在你的代码中犯了一个小错误,你得到了div,panel-heading但在循环中你迭代抛出strongDOM 中所有带有标签的元素。也许,这里是你想要的样子:divElement = driver.find_element_by_xpath("//div[@class='panel-heading']")&nbsp; &nbsp;&nbsp;for element in divElement.find_elements_by_tag_name('strong'):&nbsp; &nbsp; print (element.text)但是divwithpanel-heading只包含一个spanand strong,您可以使用 css 选择器获取它:strongText = driver.find_element_css_selector(".panel-heading strong").text
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python