我想在Python Selenium WebDriver中只提取li的内容而不提取span的内容

问题描述 投票:0回答:2

这是示例 html 文档:

<div id="div1">
<ul class="lists"> 
<li class="listItem1">
List content
<span class="span1">span text</span>
</li>
</ul>
</div>

我只想提取“列表内容”

如果我这样做:

elementList = driver.find_element(By.XPATH, "/div/ul/li")
elementList.text  

我明白:

List content span text

如果我这样做:

elementList = driver.find_element(By.XPATH, "/div/ul/li[1]")

我还是明白

List content span text

我该怎么做才能得到 没有跨度文本的“列出内容”

python html selenium-webdriver xpath xpath-2.0
2个回答
0
投票
elementList = driver.find_element(By.XPATH, "//li[@class='listItem1']").text
span_text = driver.find_element(By.XPATH, "//span[@class='span1']").text
elementList = elementList.replace(span_text, "")

这可能有点啰嗦,但我认为它应该可以解决问题。


-1
投票

尝试

text()
选项,它将返回
li
标签中存在的文本

elementList = driver.find_element(By.XPATH, "//div/ul/li/text()")

elementList = driver.find_element(By.XPATH, "normalize-space(//div/ul/li/text())")

© www.soinside.com 2019 - 2024. All rights reserved.