如何在强标签和普通文本中抓取文本

我有 li 标签列表,并且在每个 li 标签中都有一些带有强标签的文本和用于 //*[@id="main"]/li[1]/strong 的普通文本 Xpath 我如何获得普通文本,如果我采取li标签的xpath然后它会刮掉整个文本,有没有办法获得单独的文本


<li>

<strong>Heading</strong>

: Sample paragraph to get the text from here.

</li>


慕运维8079593
浏览 163回答 3
3回答

RISEBY

您可以获取<li>文本并从中删除<strong>文本element = driver.find_element_by_xpath('//*[@id="main"]/li[1]')all_text = element.textelement = element.find_element_by_xpath('./strong')text = all_text.replace(element.text, '')

SMILET

如果您使用的是 selenium Induce&nbsp;JavaScriptExecutor 并获取lastChild节点的。print(driver.execute_script('return&nbsp;arguments[0].lastChild.textContent;',&nbsp;driver.find_element_by_xpath('//*[@id="main"]/li[1]')))

慕勒3428872

要抓取正常文本,您需要诱导WebDriverWait并且由于所需visibility_of_element_located()的节点是文本节点,您可以使用execute_script()方法以及以下定位器策略:xpath 1:print(driver.execute_script('return&nbsp;arguments[0].lastChild.textContent;',&nbsp;WebDriverWait(driver,&nbsp;20).until(EC.visibility_of_element_located((By.XPATH,&nbsp;"//li[./strong[text()='Heading']]")))))xpath 2:print(driver.execute_script('return&nbsp;arguments[0].lastChild.textContent;',&nbsp;WebDriverWait(driver,&nbsp;20).until(EC.visibility_of_element_located((By.XPATH,&nbsp;"//li/strong[text()='Heading']/..")))))
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python