要求:點擊下面$ ie.navigate中指定的網頁後。我需要訪問下一個打開的Web頁面的HTML/OuterHTML源代碼。單擊後訪問下一個網頁
例如:當我打開https://www.healthkartplus.com/search/all?name=Sporanox(通過設置$ control = Sporanox),下面的代碼只需點擊第一個匹配鏈接。點擊鏈接後,我需要訪問生成頁面的HTML。
更新:提到另一個SO問題,並得知我們可以搜索適當的窗口。代碼似乎適用於某些情況,但不是所有情況。對於$ ie2,我在訪問Document屬性時遇到問題。
function getStringMatch
{
# Loop through all 2 digit combinations in the $path directory
foreach ($control In $controls)
{
$ie = New-Object -COMObject InternetExplorer.Application
$ie.visible = $true
$site = $ie.Navigate("https://www.healthkartplus.com/search/all?name=$control")
$ie.ReadyState
while ($ie.Busy -and $ie.ReadyState -ne 4){ sleep -Milliseconds 100 }
$link = $null
$link = $ie.Document.get_links() | where-object {$_.innerText -eq "$control"}
$link.click()
while ($ie.Busy -and $ie.ReadyState -ne 4){ sleep -Milliseconds 100 }
$ie2 = (New-Object -COM 'Shell.Application').Windows() | ? {
$_.Name -eq 'Windows Internet Explorer' -and $_.LocationName -match "^$control"
}
# NEED outerHTML of new page. CURRENTLY it is working for some.
$ie.Document.body.outerHTML > d:\med$control.txt
}
}
$controls = "Sporanox"
getStringMatch
在頁面首先導航到你有兩個斯皮仁諾鏈接,你想要兩個目標的HTML?只有一個? –
只是第一個。 – Powershel