2017-03-29 62 views
1

我很新的PowerShell的,而不是在HTML/JS專家獲得第n個標籤中的一個表中

我有一個網頁此表,請注意,這不是在頁面上唯一的表,也不會只有這些一個標籤 - 之前有很多標籤和表格。

<table id="row" class="simple"> 
    <thead> 
     <tr> 
     <th></th> 
     <th class="centerjustify">File Name</th> 
     <th class="centerjustify">File ID</th> 
     <th class="datetime">Creation Date</th> 
     <th class="datetime">Upload Date</th> 
     <th class="centerjustify">Processing Status</th> 
     <th class="centerjustify">Exceptions</th> 
     <th class="centerjustify">Unprocessed Count</th> 
     <th class="centerjustify">Discarded Count</th> 
     <th class="centerjustify">Rejected Count</th> 
     <th class="centerjustify">Void Count</th> 
     <th class="centerjustify">PO Total Count</th> 
     <th class="centerjustify">PO Total Amount</th> 
     <th class="centerjustify">CM Total Count</th> 
     <th class="centerjustify">CM Total Amount</th> 
     <th class="centerjustify">PO Processed Count</th> 
     <th class="centerjustify">PO Processed Amount</th> 
     <th class="centerjustify">CM Processed Count</th> 
     <th class="centerjustify">CM Processed Amount</th> 
     <th class="centerjustify">Counts At Upload</th> 
     </tr> 
    </thead> 
    <tbody> 
     <tr class="odd"> 
     <td><input type="radio" disabled="disabled" name="checkedValue" value="12047" /></td> 
     <td class="leftjustify textColorBlack"> 
      <a href="loadConfirmationDetails.htm?fId=12047">520100000000000_520100000000000_20170327_01.txt</a> 
     </td> 
     <td class="centerjustify textColorBlack">1</td> 
     <td class="datetime textColorBlack">Mar 27, 2017 0:00</td> 
     <td class="datetime textColorBlack">Mar 27, 2017 10:33:24 PM +03:00</td> 
     <td class="centerjustify textColorBlack"> 

我要的是自動瀏覽到A HREF =「loadConfirmationDetails.htm?FID = 12047,但是,所以我不能用這個HREF爲靜態的,但這種HREF的單元格位置的FID部分是動態總是相同的;它的靜態部分是href="loadConfirmationDetails.htm?fId

這個A標籤(包含想要的href)是第105個頁面,我想如果我可以在PS中使用某個cellindex但我沒有發現任何東西!

我試過這個,但沒有工作:

$ParsedHTML=(Invoke-WebRequest "https://uat.website.com/xxx/community/loadConfirmations.htm?initial=false&action=search").ParsedHtml | Where-Object {$_.TagName -eq 'a' } | Select-Object InnerHtml -First 105 
$ParsedHTML.click() 

可能是因爲這個選中全部105個第一個標籤但我只想點擊第105個。

我不知道我可以使用$ie.Document.IHTMLDocument3_getElementById("row")管道的東西像得到孩子和在哪裏採摘它的第一個標籤或什麼 - 但我不知道如何。

回答

1

如果你知道它總是在頁面上的第105次「A」的鏈接,那麼你應該能夠從.Links財產得到它,如下所示:

$Web = Invoke-WebRequest "https://uat.website.com/xxx/community/loadConfirmations.htm?initial=false&action=search" 
$Link = $Web.Links[104].href 

這是104,因爲數組從0開始。

如果它是第105屆元素(例如,所有的HTML元素)的頁面,那麼你應該能夠通過訪問它:

$Web.AllElements[104] 

你也應該提防塔T中的鏈接集合並不具有「點擊」的方法,你要使用,但似乎這是有可能通過一個Internet Explorer COM對象如下所述:

Click a hyperlink using powershell

FYI我也擴大了我的答案在您的上一個問題與其他選項如何到達您想要的頁面上的元素:https://stackoverflow.com/a/43057670/2796058

+0

嗨馬克,它實際上是第105個標記,而不是所有元素的第105個。我會嘗試你的鏈接方法,並讓你知道。 –