2015-06-06 21 views
5

Sto usando Selenium e XPATH per estrarre tutte le righe da una tabella, ma posso solo ottenere la prima riga.Python - Selenium e XPATH per estrarre tutte le righe da una tabella

Ecco quello che sto facendo:

from selenium import webdriver 

path_to_chromedriver = '/Users/me/Desktop/chromedriver' 
browser = webdriver.Chrome(executable_path = path_to_chromedriver) 

url = "http://www.psacard.com/smrpriceguide/SetDetail.aspx?SMRSetID=1055" 

browser.get(url) 
browser.implicitly_wait(10) 

SMRtable = browser.find_element_by_xpath('//*[@class="set-detail-table"]/tbody') 

for i in SMRtable.find_element_by_xpath('.//tr'): 
    print i.get_attribute('innerHTML') 

browser.close() 

La variabile SMRtable ha tutte le righe quando converto in stringa e stampare. Quando provo a collegarlo, genera un errore not iterable.

Ho anche provato a utilizzare browser.find_element_by_xpath('//*[@class="set-detail-table"]/tbody/tr'), ma questo mi dà solo la prima riga. Ho provato ad aggiungere [position()>0] dopo il /tr, ma ho ancora ottenuto solo la prima riga.

Come posso ottenere tutte le righe?

risposta

3

È necessario find_elements_by_xpath() (vedere la "s"), invece:

for i in SMRtable.find_elements_by_xpath('.//tr'): 
    print i.get_attribute('innerHTML') 
+1

Odio quando quel accada. Grazie. – jdesilvio

Problemi correlati