如何提取 ::before 和 ::after 之间的文本

How to extract text between ::before and ::after

我想将::before 和::after 之间的文本提取到一个字符串中。如何使用 for 循环提取 selenium Python?

中的所有文本

::before::after只是一个伪元素。
您可以在此处从 div 元素本身提取文本。
如果有几个 divs 与 class kbkey button red 你可以这样做:

buttons = driver.find_elements_by_css_selector("div.kbkey.button.red")
for button in buttons:
    print(button.text)

文本 i::before::after 之间 . So to extract the text you can use either of the following :

  • 使用css_selector:

    print(driver.find_element(By.CSS_SELECTOR, "div.kbkey.button.red").text)
    
  • 使用 xpath:

    print(driver.find_element(By.XPATH, "//div[@class='kbkey button red']").text)
    

理想情况下你需要诱导 for the and you can use either of the following :

  • 使用CSS-SELECTOR:

    print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "div.kbkey.button.red"))).text)
    
  • 使用 XPATH:

    print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//div[@class='kbkey button red']"))).text)
    
  • 注意:您必须添加以下导入:

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

You can find a relevant discussion in


参考资料

Link 到有用的文档:

  • get_attribute()方法获取元素.
  • 的给定属性或属性
  • text属性returns元素的文本.
  • Difference between text and innerHTML using Selenium