2016-08-16 1 views
0

J'essaye d'écrire un petit script python qui récupère les détails de suivi pour un système interne. Les détails sont présentés dans un tableau html ci-dessous. Je cherche à le transformer en tuples python:Accéder à une table en utilisant un séparateur en Python

(transformée, b unité porte 3, 30-MAY-16 12:19) (créée, une unité de porte 2 b, 30-MAY-16 06:17)

Par exemple

. J'utilise Splinter.

<table class="resultView" cellspacing="0" rules="all" border="1" style="width:540px;border-collapse:collapse;"> 
    <tr class="clearHeader"> 
     <th align="left" scope="col">Activity</th><th scope="col">&nbsp;</th><th align="center" scope="col">Date</th> 
    </tr> 
    <tr class="statusRow"> 
     <td style="width:30%;">Processed</td> 
     <td align="center"> Unit B<br /> Door 3 </td> 
     <td align="center" style="width:20%;">30-May-16<br/>12:19</td> 
    </tr> 
    <tr class="statusAlternate"> 
     <td style="width:30%;">Created</td> 
     <td align="center"> Unit B <br /> Door 2</td> 
     <td align="center" style="width:20%;">30-May-16<br/>06:17</td> 
    </tr> 
</table> 

Si je cours:

for update in browser.find_by_css('tr'): 
    print update.find_by_css('td') 

affiche:

[<splinter.driver.webdriver.WebDriverElement object at 0x103085e90>, 
<splinter.driver.webdriver.WebDriverElement object at 0x103085ed0>, 
<splinter.driver.webdriver.WebDriverElement object at 0x1030b4050>] 

Ce qui est ce que je me serais attendu. Cependant, je ne peux pas accéder à la valeur de celui-ci. Modification de la ligne:

print update.find_by_css('td').value 

donne l'erreur:

AttributeError: 'ElementList' object has no attribute 'value' 

Voici une liste donc j'essaye d'accéder au premier élément de la liste avec

print update.find_by_css('td').first.value 

je puis obtenir cette erreur:

splinter.exceptions.ElementDoesNotExist: no elements could be found with css "td" 

Je ne peux pas w ork out ce que je fais mal?

Répondre

0

Je pense que votre problème est que vous cherchez "tr" ou "td" dans votre table avec css 'tr' ou 'td' et l'un des "tr" et/ou "td" dans votre hable Je n'ai pas cette classe

Je vous suggère de suivre ce cas, utilisez xpath pour rechercher les éléments que vous voulez trouver