首页 > 解决方案 > 无法使用 Python Selenium 打印文本?

问题描述

所以我想通过 XPath 从这个 HTML 中打印出“ou”。

<div class="syllable">ou</div>

这是我的代码:

elem = driver.find_elements_by_xpath('*my xpath*')
for my_elem in elem:
    print(my_elem.text)

.text在这段代码中使用过,但它在运行时什么也没有打印出来。它应该正在打印ou,但它什么也没打印。如果有人能告诉我我做错了什么,那就太好了。

标签: pythonseleniumxpathcss-selectorswebdriverwait

解决方案


要打印文本 ou,您可以使用以下任一定位器策略

  • 使用css_selectorget_attribute("innerHTML")

    print(driver.find_element_by_css_selector("div.syllable").get_attribute("innerHTML"))
    
  • 使用xpath文本属性:

    print(driver.find_element_by_xpath("//div[@class='syllable']").text)
    

理想情况下,您需要诱导WebDriverWait并且visibility_of_element_located()您可以使用以下任一Locator Strategies

  • 使用CSS_SELECTOR文本属性:

    print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "div.syllable"))).text)
    
  • 使用XPATHget_attribute()

    print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//div[@class='syllable']"))).get_attribute("innerHTML"))
    
  • 控制台输出:

    ou
    
  • 注意:您必须添加以下导入:

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

您可以在如何使用 Selenium - Python 检索 WebElement 的文本中找到相关讨论


参考

链接到有用的文档:


推荐阅读