这是示例 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
我该怎么做才能得到 没有跨度文本的“列出内容”
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, "")
这可能有点啰嗦,但我认为它应该可以解决问题。
尝试
text()
选项,它将返回 li
标签中存在的文本
elementList = driver.find_element(By.XPATH, "//div/ul/li/text()")
或
elementList = driver.find_element(By.XPATH, "normalize-space(//div/ul/li/text())")