2014-09-19 124 views
1

我的xpath语法出了什么问题?我试图筛选通过的节点是,我的代码是:Selenium webdriver xpath过滤

div class="cmeTableBlockWrapper cmeContentSection cmeContentGroup" 
table id="quotesFuturesProductTable1" 
tr[1:] 
    td id="quotesFuturesProductTable1_ZCZ4_last" 
    td id="quotesFuturesProductTable1_ZCZ4_change" 
    td id="quotesFuturesProductTable1_ZCZ4_priorSettle" 

url = "http://www.cmegroup.com/trading/agricultural/grain-and-oilseed/corn.html" 

driver = webdriver.Chrome() 

driver.get(url) 

table = driver.find_element_by_xpath('//div[class="cmeTableBlockerWrapper cmeContentSection cmeContentGroup"]/table[@id="quotesFuturesProductTable1"]') 

# or table = driver.find_element_by_xpath('//td[contains(div[@class="fixedpage_heading"], "CORN")]/table[@class="homepage_quoteboard"]') 

for row in table.find_elements_by_tag_name('tr')[1:]: 
    priorsettle = str(row.find_element_by_id('quotesFuturesProductTable1_ZSX4_priorSettle').text) 

回答

1

查找表by id,度日指数的相应行(这里最简单的方法):

table = driver.find_element_by_id('quotesFuturesProductTable1') 
for row in table.find_elements_by_tag_name('tr')[2:]: 
    print row.find_elements_by_tag_name('td')[4].text 

打印(Prior Settle列):

338'2 
350'6 
359'2 
366'2 
374'0 
384'2 
393'6 
400'4 
404'4 
402'0 
402'0 
418'2 
407'4 

请注意,我们需要跳过2行,没有一个,因为有实际的表内容开始前两个tr标签。