【问题标题】:How to retrieve partial text from a text node using Selenium and Python如何使用 Selenium 和 Python 从文本节点中检索部分文本
【发布时间】:2020-10-08 06:24:03
【问题描述】:

我只想获取“文本...”而不使用 .split() 或索引切片

HTML:

<a class="call_recipe" href="/recipes/2913">
      " text ... "
      <strong> something~ </strong>
    </a>

HTML 快照:

【问题讨论】:

    标签: python selenium xpath css-selectors webdriverwait


    【解决方案1】:
    driver.find_element_by_class_name("call_recipe").text
    

    我想这就是你所追求的。

    How to get text with selenium web driver in python

    【讨论】:

      【解决方案2】:

      你可以使用

       "find_element_by_class_name("some_text").getText()"
      

      或者为了更好地匹配你可以使用的文本

      "driver.find_element_by_xpath("..").text"
      

      希望对你有帮助

      【讨论】:

        【解决方案3】:

        要打印 text ...,您必须为 visibility_of_element_located() 诱导 WebDriverWait,您可以使用以下任一 Locator Strategies

        • 使用CSS_SELECTORchildNodesstrip()

          print(driver.execute_script('return arguments[0].firstChild.textContent;', WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "a.call_recipe[href^='/recipes']")))).strip())
          
        • 使用XPATHget_attribute()splitlines()

          print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//a[@class='call_recipe' and starts-with(@href, '/recipes')]"))).get_attribute("innerHTML").splitlines()[1])
          
        • 注意:您必须添加以下导入:

          from selenium.webdriver.support.ui import WebDriverWait
          from selenium.webdriver.common.by import By
          from selenium.webdriver.support import expected_conditions as EC
          

        参考

        您可以在以下位置找到一些相关的详细讨论:

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2020-11-18
          • 2021-03-05
          • 2020-10-31
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-01-08
          • 2020-10-06
          相关资源
          最近更新 更多