[英]How can I scrape text within paragraph tag with some other tags then within the paragraph text?
[英]How do I scrape text within strong tag and normal text
我有 li 标签列表,在每个 li 标签中都有一些带有强标签的文本和普通文本 Xpath for //*[@id="main"]/li[1]/strong 如果我接受,我如何获得普通文本xpath 的 li 标签然后它会刮掉整个文本,有没有办法获得单独的文本
<li>
<strong>Heading</strong>
: Sample paragraph to get the text from here.
</li>
如果使用的是 selenium JavaScript
Executor 并获取节点的lastChild
。
print(driver.execute_script('return arguments[0].lastChild.textContent;', driver.find_element_by_xpath('//*[@id="main"]/li[1]')))
您可以获取<li>
文本并从中删除<strong>
文本
element = driver.find_element_by_xpath('//*[@id="main"]/li[1]')
all_text = element.text
element = element.find_element_by_xpath('./strong')
text = all_text.replace(element.text, '')
要抓取普通文本,您需要为visibility_of_element_located()
引入WebDriverWait ,并且由于所需的节点是文本节点,您可以使用execute_script()
方法以及以下定位器策略:
xpath 1 :
print(driver.execute_script('return arguments[0].lastChild.textContent;', WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//li[./strong[text()='Heading']]")))))
xpath 2 :
print(driver.execute_script('return arguments[0].lastChild.textContent;', WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//li/strong[text()='Heading']/..")))))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.