2017-07-14 96 views
0

我有一個用於登錄網站的腳本,它正在工作。對於我的下一步,我需要從$login.AllElements獲得鏈接。 我需要的文本是從HTML中獲取文本(allElements)

 
administration/uploadprofileselector.aspx?l=English&uid=1234&oid=123456 

我怎麼會從這個捕捉到它?我試過$login.AllElements | ? {$_.innerHTML -like "File Upload Utility"},但它不起作用。

 
PS> $login.AllElements 

innerHTML : Main Menu 
......more html stuff.... 
item title="Transfer In And Out" url="reports/TransferInAndOut2.asp?l=English" 
item title="Seize Items" url="administration/SeizeReport.asp?l=English" 
item title="File Upload Utility" url="administration/uploadprofileselector.aspx?l=English&uid=1234&oid=123456" > 

內HTML:

<HEAD> 
<TITLE>Main Menu</TITLE> 
<SCRIPT language=javascript> 
<!-- 
<item title="Seize Items" url="administration/SeizeReport.asp?l=English" ></item> 
<item title="File Upload Utility" url="administration/uploadprofileselector.as px?l=English&amp;uid=1234&amp;oid=123456" ></item> 
+0

什麼阻止你?你到底需要什麼幫助?你嘗試過什麼,它是如何失敗的? –

+0

問題是,當我輸入'$ login.AllElements |時,它找不到要查找的文本。 ? {$ _。類似於innerHTML的「文件上傳實用程序」}「它沒有顯示任何內容。 –

+0

'$ login.AllElements |? {$ _。title ='文件上傳實用程序'}'? –

回答

1

你要找的值是一個HTML註釋,所以你不能輕易與DOM方法提取它。嘗試這樣的:

$login.AllElements.InnerHtml | Where-Object { 
    $_ -match 'url="(administration/uploadprofileselector.aspx\?.*?)"' 
} | ForEach-Object { 
    $matches[1] 
} 
+0

謝謝,我正在尋找什麼。標記爲答案! –