powershell 如何执行网页的Javascript


PowerShell交流中心分类: Powershell基础powershell 如何执行网页的Javascript
0
Travis asked 8 年 ago

有一段这样的javascript:
 
<input name=”sysparm_search” title=”” class=”form-control form-control-search” id=”sysparm_search” accesskey=”s” style=”color: rgb(0, 0, 0);” onkeydown=”return acReferenceKeyDown(this, event);” onkeyup=”return acReferenceKeyUp(this, event);” onkeypress=”return acReferenceKeyPress(this, event);” onfocus=”this.select();this.style.color = ‘#000’;if (!this.ac) { addLoadEvent(function() {var e = $(‘sysparm_search’); if (!e.ac) new AJAXTextSearchCompleter(‘global_search_completer’, ‘sysparm_search’, ‘right’, $$(‘span.globalSearch’)[0]);}) } else this.ac.cacheClear();” type=”search” size=”10″ alt=”Search” placeholder=”Search” data-original-title=”Search” function=”$(‘textsearch’).submit()” autocomplete=”off”>
 
事实上它是一个搜索框,需要输入文字然后键盘按回车才能进行搜索。
但我想将这个自动话,填入value后,使用javascript的function来完成submit,请问如何做?

1 Answers
1
Best Answer
Mooser Lee 管理员 answered 8 年 ago

你这条路是走不通的,PowerShell执行不了JavaScript。
但是换个思路就会豁然开朗,网页上的搜索框绝大多数像本站一样,是一个input文本框,包含在一个form表单中。
你把文本框先赋值,然后手动提交form表单即可:
比如:

$ie=new-object -com "InternetExplorer.Application"
$ie.Visible=$true
$ie.Navigate("https://www.pstips.net/question/5874.html")
$search = $ie.Document.getElementById('s')
$search.value='Javascrip'

$form = $ie.Document.getElementById('searchform')
$form
$form.submit()
Travis replied 8 年 ago

谢谢你的回复,但是submit无法使用,会报错的,那个搜索框只能通过键盘按回车才能提交form:

Method invocation failed because [System.__ComObject] does not contain a method named ‘submit’.
At line:5 char:1
+ $TicketNumberField.submit() …
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (submit:String) [], RuntimeException
+ FullyQualifiedErrorId : MethodNotFound

Travis replied 8 年 ago

那个form是这样的

className : form-control form-control-search
id : sysparm_search
tagName : INPUT
parentElement : System.__ComObject
style : System.__ComObject
onhelp :
onclick :
ondblclick :
onkeydown : System.__ComObject
onkeyup : System.__ComObject
onkeypress : System.__ComObject
onmouseout :
onmouseover :
onmousemove :
onmousedown :
onmouseup :
document : mshtml.HTMLDocumentClass
title :
language :
onselectstart :
sourceIndex : 139
recordNumber :
lang :
offsetLeft : 0
offsetTop : 0
offsetWidth : 150
offsetHeight : 32
offsetParent : System.__ComObject
innerHTML :
innerText :
outerHTML :
outerText :
parentTextEdit : System.__ComObject
isTextEdit : True
filters :
ondragstart :
onbeforeupdate :
onafterupdate :
onerrorupdate :
onrowexit :
onrowenter :
ondatasetchanged :
ondataavailable :
ondatasetcomplete :
onfilterchange :
children : System.__ComObject
all : System.__ComObject
scopeName : HTML
onlosecapture :
onscroll :
ondrag :
ondragend :
ondragenter :
ondragover :
ondragleave :
ondrop :
onbeforecut :
oncut :
onbeforecopy :
oncopy :
onbeforepaste :
onpaste :
currentStyle : System.__ComObject
onpropertychange :
tabIndex : 0
accessKey : s
onblur :
onfocus : System.__ComObject
onresize :
clientHeight : 30
clientWidth : 148
clientTop : 1
clientLeft : 1
readyState : complete
onreadystatechange :
onrowsdelete :
onrowsinserted :
oncellchange :
dir :
scrollHeight : 30
scrollWidth : 148
scrollTop : 0
scrollLeft : 0
oncontextmenu :
canHaveChildren : True
runtimeStyle : System.__ComObject
behaviorUrns : System.__ComObject
tagUrn :
onbeforeeditfocus :
isMultiLine : False
canHaveHTML : False
onlayoutcomplete :
onpage :
onbeforedeactivate :
contentEditable : inherit
isContentEditable : True
hideFocus : False
disabled : False
isDisabled : False
onmove :
oncontrolselect :
onresizestart :
onresizeend :
onmovestart :
onmoveend :
onmouseenter :
onmouseleave :
onactivate :
ondeactivate :
onmousewheel :
onbeforeactivate :
onfocusin :
onfocusout :
uniqueNumber : 6
uniqueID : ms__id6
nodeType : 1
parentNode : System.__ComObject
childNodes : System.__ComObject
attributes : System.__ComObject
nodeName : INPUT
nodeValue :
firstChild :
lastChild :
previousSibling : System.__ComObject
nextSibling : System.__ComObject
ownerDocument : mshtml.HTMLDocumentClass
prefix :
localName : input
namespaceURI : http://www.w3.org/1999/xhtml
textContent :
dataFld :
dataSrc :
dataFormatAs :
role :
ariaBusy :
ariaChecked :
ariaDisabled :
ariaExpanded :
ariaHaspopup :
ariaHidden :
ariaInvalid :
ariaMultiselectable :
ariaPressed :
ariaReadonly :
ariaRequired :
ariaSecret :
ariaSelected :
ie8_attributes :
ariaValuenow :
ariaPosinset :
ariaSetsize :
ariaLevel :
ariaValuemin :
ariaValuemax :
ariaControls :
ariaDescribedby :
ariaFlowto :
ariaLabelledby :
ariaActivedescendant :
ariaOwns :
ariaLive :
ariaRelevant :
ie9_tagName :
ie9_nodeName :
onabort :
oncanplay :
oncanplaythrough :
onchange :
ondurationchange :
onemptied :
onended :
onerror :
oninput :
onload :
onloadeddata :
onloadedmetadata :
onloadstart :
onpause :
onplay :
onplaying :
onprogress :
onratechange :
onreset :
onseeked :
onseeking :
onselect :
onstalled :
onsubmit :
onsuspend :
ontimeupdate :
onvolumechange :
onwaiting :
constructor : System.__ComObject
onmspointerdown :
onmspointermove :
onmspointerup :
onmspointerover :
onmspointerout :
onmspointercancel :
onmspointerhover :
onmslostpointercapture :
onmsgotpointercapture :
onmsgesturestart :
onmsgesturechange :
onmsgestureend :
onmsgesturehold :
onmsgesturetap :
onmsgesturedoubletap :
onmsinertiastart :
onmstransitionstart :
onmstransitionend :
onmsanimationstart :
onmsanimationend :
onmsanimationiteration :
oninvalid :
xmsAcceleratorKey :
spellcheck : False
onmsmanipulationstatechanged :
oncuechange :
type : search
value :
name : sysparm_search
status : False
form : System.__ComObject
size : 10
maxLength : 2147483647
defaultValue :
readOnly : False
indeterminate : False
defaultChecked : False
checked : False
border :
vspace : 0
hspace : 0
alt : Search
src :
lowsrc :
vrml :
dynsrc :
complete : False
loop : 1
align :
width : 0
height : 0
start : fileopen
accept :
useMap :
selectionStart : 6
selectionEnd : 6
ie8_src :
ie8_lowsrc :
ie8_vrml :
ie8_dynsrc :
min :
max :
step :
valueAsNumber : 非数字

Mooser Lee 管理员 replied 8 年 ago

你找的是不是form,是文本框,找它的上一级,或者上上一级,直到找到form。