Python Selenium-查找包含任何文本的元素
我试图处理所有包含文本的元素。我知道我可以迭代列表,只处理包含文本的列表:Python Selenium-查找包含任何文本的元素,python,selenium,selenium-webdriver,Python,Selenium,Selenium Webdriver,我试图处理所有包含文本的元素。我知道我可以迭代列表,只处理包含文本的列表: from selenium import webdriver driver = webdriver.Chrome() my_elelements = driver.find_elements_by_xpath("//*") for elm in my_elements: if elm.text!="" 'processing of text 但是,有没有一种更快捷的方法,即使用selenium的驱动程序
from selenium import webdriver
driver = webdriver.Chrome()
my_elelements = driver.find_elements_by_xpath("//*")
for elm in my_elements:
if elm.text!=""
'processing of text
但是,有没有一种更快捷的方法,即使用selenium的
驱动程序,只查找包含文本的元素。通过
查找元素,而不查找所有元素,然后只过滤包含文本的元素。。。?这里可以使用通配符吗?您可以使用以下x路径来获取包含文本的所有元素
/*[text()]
——它将返回包含父节点的文本的所有元素/*[text()][count(*)=0]
--它返回所有包含纯文本子节点的元素/*[非(text())]
--它将返回所有不带文本的元素,包括父节点/*[not(text())][count(*=0]
——它返回所有不带纯文本子节点的元素您可以使用以下x路径获取包含文本的所有元素
/*[text()]
——它将返回包含父节点的文本的所有元素/*[text()][count(*)=0]
--它返回所有包含纯文本子节点的元素/*[非(text())]
--它将返回所有不带文本的元素,包括父节点/*[not(text())][count(*=0]
——它返回所有不带纯文本子节点的元素可以使用XPath的not()函数。您所说的
仅指那些没有文本的是什么意思?你能告诉我们你是怎么做到的吗?我澄清了这个问题。我想过滤掉那些没有文本的事件,只处理那些有文本的事件——任何可以使用XPath的not()函数的文本。您所说的仅指那些没有文本的是什么意思?你能告诉我们你是怎么做到的吗?我澄清了这个问题。我想过滤掉那些没有文本的事件,只处理那些有文本的事件-任何文本XPath/*[text()]
将返回一些没有文本的元素(那些只有换行符的元素)、有文本但隐藏的元素,以及
或
中的所有文本。您可以通过格式化空白并在正文后使用html/body//*[text()[normalize-space()]]
来改进它。XPath/*[text()]
将返回一些没有文本的元素(那些只有换行符的元素)、有文本但隐藏的元素以及
或
中的所有文本。您可以通过格式化空白并在正文之后使用html/body/*[text()[normalize-space()]
来改进它。