2015-06-06 7 views
5

Ich benutze Selenium und XPATH um alle Zeilen aus einer Tabelle zu extrahieren, kann aber nur die erste Zeile bekommen. HierPython - Selenium und XPATH um alle Zeilen aus einer Tabelle zu extrahieren

ist, was ich tue:

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() 

Die SMRtable Variable hat alle Zeilen in ihm, wenn ich in einem String und Druck umwandeln. Wenn ich versuche, es zu durchlaufen, wirft es einen not iterable Fehler.

Ich habe auch versucht mit browser.find_element_by_xpath('//*[@class="set-detail-table"]/tbody/tr'), aber das gibt mir nur die erste Zeile. Ich habe versucht, [position()>0] nach /tr hinzuzufügen, aber immer noch nur die erste Zeile.

Wie bekomme ich alle Zeilen?

Antwort

3

Sie müssen find_elements_by_xpath() (beobachten Sie die "s") statt:

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

Ich hasse es, wenn das das passieren. Vielen Dank. – jdesilvio

Verwandte Themen