2017-07-14 101 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

谢谢,我正在寻找什么。标记为答案! –