我的问题很简单,我正在尝试使用 java-script 或 .Net 将文本发送给个人或服务器。通常,当我在网站上执行此操作时,您只需调用脚本并在其中输入文本即可。例如,下面的脚本将在youtube搜索框中输入文本。
Form2.WebBrowser1.Document.GetElementById("search_query").SetAttribute("value", TextBox1.Text)
下面的脚本将在不和谐响应框中输入文本,但将立即消失。即使在html资源管理器中手动更改了值,然后单击响应栏上的输入也将导致文本消失或恢复为原始状态。
Dim elements2 = Form2.WebBrowser1.Document.GetElementsByTagName("textarea")
For Each element As HtmlElement In elements2
If element.GetAttribute("className") = "textArea-2Spzkt textArea-2Spzkt scrollbarGhostHairline-1mSOM1 scrollbar-3dvm_9" Then
element.Focus()
element.SetAttribute("value", TextBox1.Text)
End If
Next
原始HTML:
从环顾四周看来,discord具有可以正确调用文本框的JavaScript?我对如何解决这个问题以获得工作结果有些迷惑。如果解决方案是JavaScript,我也将其作为受人尊敬的回应。任何指针都非常感谢!
编辑:
我发现此javascript能够更改响应框中的文本,但是agian,一旦您单击文本框将其发送,它就会消失/恢复。
document.getElementsByClassName("textArea-2Spzkt textArea-2Spzkt scrollbarGhostHairline-1mSOM1 scrollbar-3dvm_9").item("textContent").value="hello"
答案 0 :(得分:0)
我尝试了下面的代码,并且有效:
Dim element1 As HtmlElement
Dim elements2 = Form2.WebBrowser1.Document.GetElementsByTagName("textarea")
Dim text1 As String
Dim text2 As String
'text1 is the string you want to input with
text1 = "ok it works again"
text2 = text1 & "{ENTER}"
'I find that there is only one element in this collection, so no need to use for each loop
element1 = elements2.Item(0)
element1.Focus()
SendKeys.SendWait(text2)