繁体   English   中英

使用文本属性在 Python 中使用 Selenium 检索文本

[英]Using text attribute to retrieve text with Selenium in Python

我正在尝试执行此操作:

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>

output 只有:

text is: 

但它应该是:

text is:  Haz clic para obtener una vista ampliada

还尝试了:

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

但同样的 output。

有人可以帮忙吗?

要打印文本Haz clic para obtener una vista ampliada ,您可以使用以下任一定位器策略

  • 使用css_selectorget_attribute("innerHTML")

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

     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

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


参考

链接到有用的文档:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM