我使用Selenium和XPATH从表中提取所有行,但只能获取第一行。
这是我正在做的事情:
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()
当我转换为字符串并打印时,SMRtable
变量包含其中的所有行。当我尝试循环它时,它会抛出not iterable
错误。
我也尝试使用browser.find_element_by_xpath('//*[@class="set-detail-table"]/tbody/tr')
,但这只给了我第一行。我尝试在[position()>0]
之后添加/tr
,但仍然只是第一行。
如何获取所有行?
答案 0 :(得分:4)
您需要find_elements_by_xpath()
(请注意" s"):
for i in SMRtable.find_elements_by_xpath('.//tr'):
print i.get_attribute('innerHTML')