2010-08-08 5 views
4

J'essaie d'écrire mon script watir pour récupérer les données suivantes (les en-têtes de corps de table et les données de la ligne de table, mais j'ai du mal à comprendre comment accéder à la table. (Une fois que je reçois cela, le reste est un morceau de gâteau.)Watir: Comment accéder à une table sans ID ou NAME

Quelqu'un peut-il trouver quelque chose qui m'aidera à accéder à la table? Il n'a pas de nom ou d'identifiant ...

<div id="income"> 
    <table class="tHe" cellspacing="0"> 
    <thead> 
     <tr> 
      <th id="companyLabel" class="tFirst" style="width:30%"> Quarter Ending </th> 
      <th id="201004" class="tFirst right">Apr&nbsp;10 </th> 
      <th id="201001" class="tFirst right">Jan&nbsp;10 </th> 
      <th id="200910" class="tFirst right">Oct&nbsp;09 </th> 
      <th id="200907" class="tFirst right">Jul&nbsp;09 </th> 
      <th id="200904" class="tFirst right">Apr&nbsp;09 </th> 
     </tr> 
    </thead> 

    <tbody id="revenueBody"> 
    <tr> 
     <td class="indtr">Totals</dfn></td> 
     <td class="right">2849.00</td> 
     <td class="right">3177.00</td> 
     <td class="right">5950.00</td> 
     <td class="right">4451.00</td> 
     <td class="right">3351.00</td> 
    </tr> 
    ... 

Répondre

6

ie.table (: class => 'le') devrait fonctionner s'il n'y a pas d'autres tables avec le même nom de classe

ie.table (: après ?, ie.div (: id, 'revenu')) devrait fonctionner s'il n'y a pas d'autre div avec id 'revenu'

ou ie.table (: index => 0) - vous aurait besoin de vérifier votre page pour voir quelle est la valeur d'index correcte pour votre table.

+0

génial ... c'était parfait ... – NinjaCat

+0

pouvons-nous trouver l'index de la table sur la base de son id? – unknownbits

5

Mais attendez, il y a plus! :)

browser.div(:id => "income").table(:class => 'tHe') 
browser.div(:id => "income").table(:index => 1) 
... 
+0

Merci pour cela ... Je vais en fait être en mesure d'utiliser pour le même projet, juste dans une zone différente ... – NinjaCat

+1

juste un petit détail: ajouter ":" avant id. Exemple: 'browser.div (: id =>" income ")' –

+0

@IgorPopov: merci, corrigé –

3

Il existe également XPath si vous êtes bloqué. Si vous lancez la page et y accédez via Firebug ou les outils de développement natifs de votre navigateur, vous pouvez trouver l'expression xpath pour la table, puis la connecter à l'appel de l'API Watir.

Je pense que c'est dans les versions ultérieures de Watir 1.5.x que la prise en charge de l'interrogation de page avancée est arrivée (essentiellement votre problème, où il n'y a pas de balises ID). Cette page sur le wiki Watir devrait aider: Ways Available To Identify HTML Element

Questions connexes