用selenium按ID提取文本

2024-10-03 00:19:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在Python中使用selenium从html中提取文本。我的文本在id标签下,当我试图用这种方式检索文本时,会出现错误。你知道吗

enter image description here

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

Tags: text文本browseriddatebyelementfind
2条回答

您没有给出失败的代码,但是从回溯中可以看出您使用的是复数版本(browser.find\元素代替单数browser.find_element_by_id。你知道吗

要检索文本4/20/2016,您需要为visibility_of_element_located归纳WebDriverWait,并且您可以使用以下任何一种Locator Strategies

  • 使用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
    

相关问题 更多 >