UPDATEJavaScript注入通过.NET应用程序无法找到textarea的
错误即将通过,因为页面加载奇怪 - 有没有办法,你可以告诉你的程序等,同时该页面仍加载?
结束时更新
我试图通过使用VB.NET .NET应用程序注入一些文本到一个textarea在网站上。我有我的浏览器控制设置,但我遇到了麻烦,没有找到textarea的JavaScript。
我运行使用铬合金的JScript技巧扩展这个代码,它完美的作品。
document.getElementById('magicScanBox').value = '12345678\n12345679'
然而,当我通过我的文档上运行完全一样的剧本,我得到的错误
Unable to set property 'value' of undefined or null reference
这里是代码我试图运行
Private Sub browser_DocumentCompleted(sender As System.Object, e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles browser.DocumentCompleted
If browser.DocumentTitle = "Login" Then
Dim headElement As HtmlElement = browser.Document.GetElementsByTagName("head")(0)
Dim scriptElement As HtmlElement = browser.Document.CreateElement("script")
Dim element As IHTMLScriptElement = DirectCast(scriptElement.DomElement, IHTMLScriptElement)
element.text = "document.getElementsByName('Username')[0].value='USERNAME';document.getElementsByName('Password')[0].value='PASSWORD';document.forms[0].submit();"
headElement.AppendChild(scriptElement)
End If
If browser.DocumentTitle = "Inventory" Then
Dim script = "document.getElementById('magicScanBox').value = '12345678\n12345679'"
browser.Document.InvokeScript("eval", New Object() {script})
'Dim headElement As HtmlElement = browser.Document.GetElementsByTagName("head")(0)
'Dim scriptElement As HtmlElement = browser.Document.CreateElement("script")
'Dim element As IHTMLScriptElement = DirectCast(scriptElement.DomElement, IHTMLScriptElement)
'element.text = "document.getElementById('magicScanBox').value = '12345678\n12345679';"
'headElement.AppendChild(scriptElement)
End If
End Sub
请注意顶部(If browser.DocumentTitle = "Login"
)正常工作。这会注入用户名/密码并自动在登录页面上提交表单。
我试图与发生故障的部分相同的方法,它仍然没有找到它。我有一个怀疑,这是因为它是一个textarea
控件而不是一个文本框,或者与VB.NET中的浏览器控件如何处理注入有关。
我怎么能去注射字符串转换为textarea
控制与下面的标记?
<textarea class="form-control ng-pristine ng-valid ng-touched" style="resize: none;" rows="8" cols="10" id="magicScanBox" placeholder="" ng-paste="onPasteSerials($event)" ng-list="" ng-trim="false" ng-model="allEnteredSerials" ui-keypress="{13:'magicScan($event)'}"></textarea>
此外,只是说,我无法编辑网站或标记 - 这是另一家公司的网站,我试图自动化库存上传到。