使用text属性返回Selenium和Python的空字符串



我尝试使用python使用selenium网络驱动程序收集一些文本,发现something.text收集空字符串,但something.get_attribute(name="innerText")收集我想要的值。为什么会发生这种情况?

something = driver.find_element(By.CLASS_NAME, "block-mega-child-cats")
tag = something.find_elements(By.TAG_NAME, "a")
for i in tag:
print(i.get_attribute(name="innerText"))

这部分代码运行得很好,但我不明白为什么.text不能。

要收集诱导WebDriver所需的所有文本,请等待可见性_of_all_elements_located((并使用列表理解,您可以使用以下任一解决方案:

  • 使用CSS_SELECTORget_attribute("innerHTML"):

    print([my_elem.get_attribute("innerHTML") for my_elem in WebDriverWait(driver, 20).until(EC.visibility_of_all_elements_located((By.CSS_SELECTOR, ".block-mega-child-cats a")))])
    
  • 使用XPATH文本属性:

    print([my_elem.text for my_elem in WebDriverWait(driver, 20).until(EC.visibility_of_all_elements_located((By.XPATH, "//*[@class='block-mega-child-cats']//a")))])
    
  • 注意:您必须添加以下导入:

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

最新更新