Python Selenium - 查找包含任何文本的元素

时间:2017-12-05 06:40:37

标签: 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的driver.find_elements_by_没有找到所有元素,然后只过滤那些带文字的元素......?是否有可以在这里使用的通配符?

1 个答案:

答案 0 :(得分:2)

您可以使用以下x路径获取包含文本的所有元素。

  1. //*[text()] - 它将返回包含父节点
  2. 的文本的所有元素
  3. //*[text()][count(*)=0] - 它返回所有仅包含文本子节点的元素
  4. 或者您可以使用以下x路径来获取没有文本的所有元素。

    1. //*[not(text())] - 它将返回没有包含父节点的文本的所有元素
    2. //*[not(text())][count(*)=0] - 它返回所有没有纯文本子节点的元素