我是Powershell的新手,不是HTML / JS专家
我在网页上有这个表,请注意它不是页面上唯一的表,也不是唯一的A标签 - 之前有很多标签和表格。
<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">
我想要的是自动浏览到href =“loadConfirmationDetails.htm?fId = 12047但fId部分是动态的,所以我不能将此href用作静态,但此href的单元格位置始终相同;它的静态部分是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个第一个A标签,但我只想点击第105个。
我还想知道我可以使用$ie.Document.IHTMLDocument3_getElementById("row")
管道来获取像孩子一样的东西以及选择第一个A标签或其他东西 - 但我无法弄清楚如何。
答案 0 :(得分:0)
如果你知道它总是第105个&#34; A&#34;在页面上链接然后您应该能够从.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]
此外,您应该注意Links集合没有&#34; Click&#34;您尝试使用的方法,但似乎可以通过此处所述的Internet Explorer COM对象实现:
Click a hyperlink using powershell
仅供参考我还在上一个问题上扩展了我的答案,其中包含了一些关于如何到达您想要的页面元素的其他选项:https://stackoverflow.com/a/43057670/2796058