![](/img/trans.png)
[英]How to retrieve partial text from a text node using Selenium and Python
[英]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_selector和get_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_SELECTOR和text属性:
print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "span#canvasCaption"))).text)
使用XPATH和get_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
链接到有用的文档:
get_attribute()
方法Gets the given attribute or property of the element.
text
属性返回The text of the element.
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.