2017-06-25 177 views
0

我需要从网页中提取文本&并在我的控制台中打印。 Xpath提取这些文本:使用xpath-selenium-python从网页中提取文本/数字

尝试这样做时,我只能得到0,但这些xpath应返回与其关联的数字&的文本值。

需要帮助!

import time 
from selenium import webdriver 
from selenium.webdriver.common.by import By 
from selenium.webdriver.support.ui import WebDriverWait 
from selenium.webdriver.support import expected_conditions as EC 
from selenium.common.exceptions import TimeoutException 
from selenium.common.exceptions import ElementNotVisibleException 

def init_driver(): 
    driver = webdriver.Chrome() 
    driver.wait = WebDriverWait(driver, 5) 
    return driver 

def lookup(driver,uname,pwd): 
    driver.get("URL") 
    box = driver.wait.until(EC.presence_of_element_located((By.NAME, "j_username"))) 
    box.send_keys(uname) 
    box = driver.wait.until(EC.presence_of_element_located((By.NAME, "j_password")))   
    box.send_keys(pwd) 
    button = driver.wait.until(EC.element_to_be_clickable((By.NAME, "login"))) 
    button.click() 
    button = driver.wait.until(EC.presence_of_element_located((By.ID, "fetchCandidateChanges_0"))) 
    button.click() 

    #element = driver.wait.until(EC.presence_of_element_located(By.CLASS_NAME, "desc")) 
    driver.wait = WebDriverWait(driver, 15) 
    element = driver.find_element_by_xpath("//label[@id='PUSHED']") 
    k=element.text 
    print(k) 

if __name__ == "__main__": 
    driver = init_driver() 
    lookup(driver,"ddd","ppp") 
    time.sleep(15) 
    driver.quit() 
+0

能否请您分享的HTML – Monika

回答

0

试试这种方法获取所有标签的文本。

代码

labels = driver.find_elements_by_xpath('//label[@class="pagebanner"]') 
for label in labels: 
    print label.text 
+0

感谢莫妮卡,这真的很好..现在我想与数值一起打印的名字,等等。 UNREGISTERED:1 ETC., –

+0

如果它适合你,你应该接受答案。 – Monika

+0

你可以为此提出单独的问题。我们将非常乐意提供帮助。 – Monika