2016-01-05 93 views
1

我使用硒的webdriver與Python,我需要這在一個循環: 我可以做這樣的事情:如何製作元素硒的列表?

a=browser.find_element_by_xpath("//tbody[@id='mrc_main_table']/tr/td[1]") 
b=browser.find_element_by_xpath("//tbody[@id='mrc_main_table']/tr/td[2]") 
c=browser.find_element_by_xpath("//tbody[@id='mrc_main_table']/tr/td[3]") 
d=browser.find_element_by_xpath("//tbody[@id='mrc_main_table']/tr/td[n]") 

1),但我想是這樣的:

var==browser.find_element_by_xpath("//tbody[@id='mrc_main_table']/tr/td[ALL_value]") 

2)I需要作爲陣列輸出這樣的:

output=[ANDERSON,ISAIAH,DWIGHT,....] 

下面是該代碼:

import xlwt 
    from tempfile import TemporaryFile 
    from selenium import webdriver 
    browser =webdriver.Firefox() 
    browser.get("https://report.boonecountymo.org/mrcjava/servlet/SH01_MP.I00290s") 
    element=browser.find_element_by_xpath("//tbody[@id='mrc_main_table']/tr/td[1]")#I want this as list 
    output=element.text #I want this as list 
    print output 

    book = xlwt.Workbook() 
    sheet1 = book.add_sheet('sheet1') 
    output=[ANDERSON,ISAIAH,DWIGHT,....] 
    output= [a,b,c] 
    for row, array in enumerate(output): 
      for col, value in enumerate(array): 
      sheet1.write(row, col, value) 
    name = "this.xls" 
    book.save(name) 
    book.save(TemporaryFile()) 

任何人都可以幫我嗎? 感謝

回答

0

使用find_elements_by_xpath()list comprehension,並且不指定單元格指數:

[td.text for td in browser.find_elements_by_xpath("//tbody[@id='mrc_main_table']/tr/td")] 

如果你想擁有每行單元格值的名單,你就需要製作列表名單:

[[td.text for td in row.find_elements_by_tag_name("td")] 
for row in browser.find_elements_by_xpath("//tbody[@id='mrc_main_table']/tr")] 

演示:

>>> from selenium import webdriver 
>>> from pprint import pprint 
>>> 
>>> browser = webdriver.Firefox() 
>>> browser.get("https://report.boonecountymo.org/mrcjava/servlet/SH01_MP.I00290s") 
>>> data = [[td.text for td in row.find_elements_by_tag_name("td")] for row in browser.find_elements_by_xpath("//tbody[@id='mrc_main_table']/tr")] 
>>> pprint(data) 
[['ACTON', 'CLINTON', 'WAYNE', 'M', 'W', '35', 'STURGEON', 'MO'], 
['ALLEN', 'SHAUN', 'PHILLIP', 'M', 'W', '28', 'COLUMBIA', 'MO'], 
['ANDERSON', 'ISAIAH', 'DWIGHT', 'M', 'B', '19', 'COLUMBIA', 'MO'], 
... 
['DONATI', 'ROBERT', 'KEITH', 'M', 'W', '52', 'COLUMBIA', 'MO'], 
['DONIGIAN', 'CHARLES', 'ROSS', 'M', 'W', '20', 'COLUMBIA', 'MO']] 
+0

幹得好...非常感謝你 –

相關問題