按ID用硒提取文本
Extracting text with selenium by ID
我想使用 Python 中的硒从 html 中提取文本。我的文本在 id 标签下,当我尝试以这种方式检索文本时出现错误。
date=browser.find_element_by_id('ctl00_ContentPlaceHolder1_lblIncDate')
date2=date.text
date1.append(date)
AttributeError Traceback (most recent call last)
<ipython-input-21-20d6df14a340> in <module>()
37 date1.append(date)
38 userid_element = browser.find_elements_by_id('ctl00_ContentPlaceHolder1_lblIncDate')
---> 39 userid = userid_element.text
40 userid1.append(userid)
41 time.sleep(20)
AttributeError: 'list' object has no attribute 'text'
此外,
我尝试使用 xpath 但没有真正起作用:
date2=date.text
date1.append(date)
File "<ipython-input-19-8b8e7fb86782>", line 35
date=browser.find_element_by_xpath(''//span[@id= 'ctl00_ContentPlaceHolder1_lblIncDate' ]'')
^
SyntaxError: invalid syntax
您没有提供失败的代码,但从回溯中可以看出您使用的是复数版本 (browser.find_elements_by_id)而不是单数 browser.find_element_by_id
.
要检索文本 4/20/2016 您需要为 visibility_of_element_located
引入 WebDriverWait 并且您可以使用以下任一项都可以使用 :
使用CSS_SELECTOR
:
print(WebDriverWait(driver, 5).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "span#ctl00_ContentPlaceHolder1_lblIncDate"))).get_attribute("innerHTML"))
使用XPATH
:
print(WebDriverWait(driver, 5).until(EC.visibility_of_element_located((By.XPATH, "//span[@id='ctl00_ContentPlaceHolder1_lblIncDate']"))).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
我想使用 Python 中的硒从 html 中提取文本。我的文本在 id 标签下,当我尝试以这种方式检索文本时出现错误。
date=browser.find_element_by_id('ctl00_ContentPlaceHolder1_lblIncDate')
date2=date.text
date1.append(date)
AttributeError Traceback (most recent call last)
<ipython-input-21-20d6df14a340> in <module>()
37 date1.append(date)
38 userid_element = browser.find_elements_by_id('ctl00_ContentPlaceHolder1_lblIncDate')
---> 39 userid = userid_element.text
40 userid1.append(userid)
41 time.sleep(20)
AttributeError: 'list' object has no attribute 'text'
此外, 我尝试使用 xpath 但没有真正起作用:
date2=date.text
date1.append(date)
File "<ipython-input-19-8b8e7fb86782>", line 35
date=browser.find_element_by_xpath(''//span[@id= 'ctl00_ContentPlaceHolder1_lblIncDate' ]'')
^
SyntaxError: invalid syntax
您没有提供失败的代码,但从回溯中可以看出您使用的是复数版本 (browser.find_elements_by_id)而不是单数 browser.find_element_by_id
.
要检索文本 4/20/2016 您需要为 visibility_of_element_located
引入 WebDriverWait 并且您可以使用以下任一项都可以使用
使用
CSS_SELECTOR
:print(WebDriverWait(driver, 5).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "span#ctl00_ContentPlaceHolder1_lblIncDate"))).get_attribute("innerHTML"))
使用
XPATH
:print(WebDriverWait(driver, 5).until(EC.visibility_of_element_located((By.XPATH, "//span[@id='ctl00_ContentPlaceHolder1_lblIncDate']"))).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