【问题标题】:Using text attribute to retrieve text with Selenium in Python在 Python 中使用 text 属性通过 Selenium 检索文本
【发布时间】:2022-01-21 04:32:19
【问题描述】:

我正在尝试执行此操作:

driver.get(websitelink)
sleep(3)

element = driver.find_element_by_id("canvasCaption").text
print('text is:',element)

为了从这里获取文本:

<div class="a-column a-span12 a-text-center"> 
  <span id="canvasCaption" class="a-color-secondary">Haz clic para obtener una vista ampliada</span> 
</div>

输出只有:

text is: 

但应该是:

text is:  Haz clic para obtener una vista ampliada

也试了一下:

element = driver.find_element_by_class_name("a-color-secondary").text

但输出相同。

有人可以帮忙吗?

【问题讨论】:

标签: python selenium-webdriver xpath css-selectors webdriverwait


【解决方案1】:

要打印文本Haz clic para obtener una vista ampliada,您可以使用以下任一Locator Strategies

  • 使用 css_selectorget_attribute("innerHTML"):

    print(driver.find_element(By.CSS_SELECTOR, "span#canvasCaption").get_attribute("innerHTML"))
    
  • 使用xpathtext属性:

    print(driver.find_element(By.XPATH, "//span[@id='canvasCaption']").text)
    

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

  • 使用 CSS_SELECTORtext 属性:

    print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "span#canvasCaption"))).text)
    
  • 使用 XPATHget_attribute("innerHTML"):

    print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//span[@id='canvasCaption']"))).get_attribute("innerHTML"))
    
  • 注意:您必须添加以下导入:

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

您可以在How to retrieve the text of a WebElement using Selenium - Python找到相关讨论


参考文献

链接到有用的文档:

【讨论】:

    猜你喜欢
    • 2020-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-23
    • 1970-01-01
    • 1970-01-01
    • 2013-12-30
    • 2021-09-08
    相关资源
    最近更新 更多