2016-07-31 113 views
0

我是新來硒和我有這個問題,我需要遍歷表並獲取值在該表如何在硒中循環表格?

<table> 
 
    <tr> 
 
    <td style="width:5px"> 
 
    </td> 
 
    <td> 
 
     <table class="reportTable" id="Allocations"> 
 
     <tbody> 
 
      <tr class="table_header"> 
 
      <td style="width:5px;"> 
 
       <img class="HideImage" src="Images/minus.gif" alt="Hide Details"> 
 
      </td> 
 
      <td style="width:33%"> 
 
       Channel of Trade</td> 
 
      <td style="width:33%"> 
 
       PILOT TRAVEL CENTE-122194-W/S - UNB Contract</td> 
 
      <td style="width:33%"> 
 
       <span id="TruckLoading_10142602_Info" style="COLOR: white;text-decoration:underline;cursor:pointer"> 
 
Trucks loading - 0</span> 
 
      </td> 
 
      </tr> 
 
      <tr> 
 
      <td style="width:5px;"> 
 
      </td> 
 
      <td colspan="3"> 
 
       <table rules="rows" class="reportTable" font-family="Tahoma" pagerstyle-visible="False" id="TerminalGrid" border="1"> 
 
       <tbody> 
 
        <tr class="productlabel2" align="left"> 
 
        <td scope="col" style="width:5px;"> 
 
        </td> 
 
        <td> 
 
         Product Details</td> 
 
        </tr> 
 
        <tr class="hdr2"> 
 
        <td scope="col" style="width:5px;"> 
 
        </td> 
 
        <td scope="col"> 
 
         Fuel Type</td> 
 
        </tr> 
 
        <tr class="FuelTypeHeader"> 
 
        <td style="width:5px;border:none" onclick="ShowHideDetails(this)"> 
 
         <img class="HideImage" src="Images/minus.gif" alt="Hide Details" id="Fuel_Img"> 
 
        </td> 
 
        <td style="border-left:none;border-right:none; padding-left:3px"> 
 
         <table id="C_V" style="width:100%;border-collapse:collapse; border:none; padding:0px 0px 0px 0px; margin:0px 0px 0px 0px;"> 
 
         <tbody> 
 
          <tr> 
 
          <td style="width:20em;"> 
 
           <span> 
 
DSL - LSD/ULSD</span> 
 
          </td> 
 
          <td style="width:60em;"> 
 
           <span id="CVSpan"> 
 
<span style="margin-right:10px"> 
 
<span style="float:left;padding-top:3px"> 
 
Currently:</span> 
 
           <span style="float:left;width:6em;padding-top:2px; margin-left:5px; margin-right:5px;margin-top:2px;padding-bottom:2px; text-align:center; background-color:#00FF00;"> 
 
Available</span> 
 
           <span style="float:left; padding-top:3px"> 
 
<b> 
 
30,839</b> 
 
gallons remaining until Mon 8/1/2016 12:00:00 AM CDT</span> 
 
           </span> 
 
           </span> 
 
          </td> 
 
          <td align="right"> 
 
          </td> 
 
          </tr> 
 
         </tbody> 
 
         </table> 
 
        </td> 
 
        </tr> 
 
        <tr style=""> 
 
        <td style="width:5px;"> 
 
        </td> 
 
        <td> 
 
         <table id="ProdDetails" rules="all" pagerstyle-visible="False" style="width: 100%" border="1"> 
 
         <tbody> 
 
          <tr class="table_header2"> 
 
          <th scope="col"> 
 
           Nominated Volume</th> 
 
          <th scope="col"> 
 
           Allocation Period</th> 
 
          <th scope="col"> 
 
           Allocation %</th> 
 
          <th scope="col"> 
 
           Allocation Start Amt</th> 
 
          <th scope="col"> 
 
           Allocation Lifted</th> 
 
          <th scope="col"> 
 
           Allocation Remaining</th> 
 
          <th scope="col"> 
 
           GPO Allowance</th> 
 
          <th scope="col" class="center width8em"> 
 
           GPO Remaining</th> 
 
          <th scope="col"> 
 
           Category Status</th> 
 
          <th scope="col"> 
 
           Ratability Status</th> 
 
          <th scope="col"> 
 
           Next Scheduled Refresh Date</th> 
 
          <th scope="col"> 
 
           Reference ID</th> 
 
          </tr> 
 
          <tr class="tablerow2"> 
 
          <td class="right width8em"> 
 
           41,118</td> 
 
          <td class="center width10em"> 
 
           Daily</td> 
 
          <td class="right"> 
 
           75%</td> 
 
          <td class="right"> 
 
           30,839</td> 
 
          <td class="right"> 
 
           0</td> 
 
          <td class="right"> 
 
           30,839</td> 
 
          <td class="right"> 
 
           0</td> 
 
          <td class="right width8em bold" id="GPO_Rmd"> 
 

 
           0 
 
          </td> 
 
          <td class="center" style="background-color:#00FF00;"> 
 
           Available</td> 
 
          <td class="center" style="background-color:#0099CC;"> 
 
           Below Trend</td> 
 
          <td class="center width20em"> 
 
           8/1/2016 12:00:00 AM CDT</td> 
 
          <td class="center width20emWordWrap"> 
 
           DSL - LSD/ULSD</td> 
 
          </tr> 
 
          <tr class="tablerow2"> 
 
          <td class="right width8em"> 
 
           287,826</td> 
 
          <td class="center width10em"> 
 
           Weekly</td> 
 
          <td class="right"> 
 
           125%</td> 
 
          <td class="right"> 
 
           359,783</td> 
 
          <td class="right"> 
 
           114,083</td> 
 
          <td class="right"> 
 
           245,700</td> 
 
          <td class="right"> 
 
           0</td> 
 
          <td class="right width8em bold" id="GPO_Rmd"> 
 

 
           0 
 
          </td> 
 
          <td class="center" style="background-color:#00FF00;"> 
 
           Available</td> 
 
          <td class="center" style="background-color:#0099CC;"> 
 
           Below Trend</td> 
 
          <td class="center width20em"> 
 
           8/4/2016 12:00:00 AM CDT</td> 
 
          <td class="center width20emWordWrap"> 
 
           DSL - LSD/ULSD</td> 
 
          </tr> 
 
          <tr class="tablerow2"> 
 
          <td class="right width8em"> 
 
           1,233,540</td> 
 
          <td class="center width10em"> 
 
           Monthly</td> 
 
          <td class="right"> 
 
           115%</td> 
 
          <td class="right"> 
 
           1,418,571</td> 
 
          <td class="right"> 
 
           1,361,264</td> 
 
          <td class="right"> 
 
           57,307</td> 
 
          <td class="right"> 
 
           0</td> 
 
          <td class="right width8em bold" id="GPO_Rmd"> 
 

 
           0 
 
          </td> 
 
          <td class="center" style="background-color:#FFFF00;"> 
 
           Low</td> 
 
          <td class="center" style="background-color:#00CC00;"> 
 
           On Track</td> 
 
          <td class="center width20em"> 
 
           8/1/2016 12:00:00 AM CDT</td> 
 
          <td class="center width20emWordWrap"> 
 
           DSL - LSD/ULSD</td> 
 
          </tr> 
 
         </tbody> 
 
         </table> 
 
        </td> 
 
        </tr> 
 
        <tr id="GPO_Row"> 
 
        <td style="width:5px;"> 
 
        </td> 
 
        <td> 
 
        </td> 
 
        </tr> 
 
       </tbody> 
 
       </table> 
 
      </td> 
 
      </tr> 
 
      <tr class="table_header"> 
 
      <td style="width:5px;" onclick="ShowHideDetails(this)"> 
 
       <img class="HideImage" src="Images/minus.gif" alt="Hide Details"> 
 
      </td> 
 
      <td style="width:33%"> 
 
       Channel of Trade</td> 
 
      <td style="width:33%"> 
 
       PILOT TRAVEL CENTE-122194-W/S - UNB Fwrd Cont</td> 
 
      <td style="width:33%"> 
 
       <span id="TruckLoading_17049566_Info" style="COLOR: white;text-decoration:underline;cursor:pointer" onclick="GetTruckLoadingInformationJS(this,17049566);"> 
 
Trucks loading - 0</span> 
 
      </td> 
 
      </tr> 
 
      <tr> 
 
      <td style="width:5px;"> 
 
      </td> 
 
      <td colspan="3"> 
 
       <table rules="rows" class="reportTable" font-family="Tahoma" pagerstyle-visible="False" id="TerminalGrid" border="1"> 
 
       <tbody> 
 
        <tr class="productlabel2" align="left"> 
 
        <td scope="col" style="width:5px;"> 
 
        </td> 
 
        <td> 
 
         Product Details</td> 
 
        </tr> 
 
        <tr class="hdr2"> 
 
        <td scope="col" style="width:5px;"> 
 
        </td> 
 
        <td scope="col"> 
 
         Fuel Type</td> 
 
        </tr> 
 
        <tr class="FuelTypeHeader"> 
 
        <td style="width:5px;border:none" onclick="ShowHideDetails(this)"> 
 
         <img class="HideImage" src="Images/minus.gif" alt="Hide Details" id="Fuel_Img"> 
 
        </td> 
 
        <td style="border-left:none;border-right:none; padding-left:3px"> 
 
         <table id="C_V" style="width:100%;border-collapse:collapse; border:none; padding:0px 0px 0px 0px; margin:0px 0px 0px 0px;"> 
 
         <tbody> 
 
          <tr> 
 
          <td style="width:20em;"> 
 
           <span> 
 
DSL - LSD/ULSD</span> 
 
          </td> 
 
          <td style="width:60em;"> 
 
           <span id="CVSpan"> 
 
<span style="margin-right:10px"> 
 
<span style="float:left;padding-top:3px"> 
 
Currently:</span> 
 
           <span style="float:left;width:6em;padding-top:2px; margin-left:5px; margin-right:5px;margin-top:2px;padding-bottom:2px; text-align:center; background-color:#FF0000;"> 
 
Out</span> 
 
           <span style="float:left; padding-top:3px"> 
 
<b> 
 
0</b> 
 
gallons remaining until Mon 8/1/2016 12:00:00 AM CDT</span> 
 
           </span> 
 
           </span> 
 
          </td> 
 
          <td align="right"> 
 
          </td> 
 
          </tr> 
 
         </tbody> 
 
         </table> 
 
        </td> 
 
        </tr> 
 
        <tr style=""> 
 
        <td style="width:5px;"> 
 
        </td> 
 
        <td> 
 
         <table id="ProdDetails" rules="all" pagerstyle-visible="False" style="width: 100%" border="1"> 
 
         <tbody> 
 
          <tr class="table_header2"> 
 
          <th scope="col"> 
 
           Nominated Volume</th> 
 
          <th scope="col"> 
 
           Allocation Period</th> 
 
          <th scope="col"> 
 
           Allocation %</th> 
 
          <th scope="col"> 
 
           Allocation Start Amt</th> 
 
          <th scope="col"> 
 
           Allocation Lifted</th> 
 
          <th scope="col"> 
 
           Allocation Remaining</th> 
 
          <th scope="col"> 
 
           GPO Allowance</th> 
 
          <th scope="col" class="center width8em"> 
 
           GPO Remaining</th> 
 
          <th scope="col"> 
 
           Category Status</th> 
 
          <th scope="col"> 
 
           Ratability Status</th> 
 
          <th scope="col"> 
 
           Next Scheduled Refresh Date</th> 
 
          <th scope="col"> 
 
           Reference ID</th> 
 
          </tr> 
 
          <tr class="tablerow2"> 
 
          <td class="right width8em"> 
 
           0</td> 
 
          <td class="center width10em"> 
 
           Custom 1 day(s)</td> 
 
          <td class="right"> 
 
           100%</td> 
 
          <td class="right"> 
 
           0</td> 
 
          <td class="right"> 
 
           0</td> 
 
          <td class="right"> 
 
           0</td> 
 
          <td class="right"> 
 
           0</td> 
 
          <td class="right width8em bold" id="GPO_Rmd"> 
 

 
           0 
 
          </td> 
 
          <td class="center" style="background-color:#FF0000;"> 
 
           Out</td> 
 
          <td class="center" style="background-color:#0099CC;"> 
 
           Below Trend</td> 
 
          <td class="center width20em"> 
 
           8/1/2016 12:00:00 AM CDT</td> 
 
          <td class="center width20emWordWrap"> 
 
           MERC-DSL</td> 
 
          </tr> 
 
         </tbody> 
 
         </table> 
 
        </td> 
 
        </tr> 
 
        <tr id="GPO_Row"> 
 
        <td style="width:5px;"> 
 
        </td> 
 
        <td> 
 
        </td> 
 
        </tr> 
 
       </tbody> 
 
       </table> 
 
      </td> 
 
      </tr> 
 
     </tbody> 
 
     </table> 
 
    </td> 
 
    </tr> 
 
</table>

我想知道如何循環表,以便我可以得到一份合同,那就是「PILOT TRAVEL CENTE-122194 -W/S - UNB合同」,「PILOT TRAVEL CENTE-122194 -W/S - UNB Fwrd Cont」和「UNB Spot」以及表中的數據。 在此先感謝。

+0

你試了一下自己?結果是什麼? –

+0

我試圖循環表,但我得到的合同與前3條記錄,也是合同被添加到第4行也。 我想獲得第一排3排的第一個合同,而不是第4排 –

+0

你能分享哪些你已經嘗試過嗎? –

回答

1

好吧,你不說什麼你使用這樣的語言,我會給你例如C#

//Init table element (in this case by tag name but better chose by id or Name) 
IWebElement tableElement = driver.FindElement(By.TagName("table")); 

//Init TR elements from table we found into list 
IList<IWebElement> trCollection = tableElement.FindElements(By.TagName("tr")); 
//define TD elements collection. 
IList<IWebElement> tdCollection; 

//loop every row in the table and init the columns to list 
foreach(IWebElement element in trCollection) 
{ 
    tdCollection = element.FindElements(By.TagName("td")); 

    //now in the List you have all the columns of the row 
    string column1 = tdCollection[0].Text; 
    string column2 = tdCollection[1].Text; 
    ... 
} 

如果你使用其他語言只是改變了語法的邏輯是一樣的。

+0

我使用的是同樣的邏輯給你,但得到'element' = null –

+0

所以你沒有在你的表中tr標籤.. –

+0

我越來越完美。即10個。但問題是隻有元素。 –