Input 如何使用VBScript更改帧内输入的值

Input 如何使用VBScript更改帧内输入的值,input,vbscript,frame,getelementbyid,frameset,Input,Vbscript,Frame,Getelementbyid,Frameset,我想做一个脚本,将打开IE和自动填写在一个外部网站的形式输入。我要填写的输入被放置在一个框架内。因此,getElementByID在这里不起作用 我已经建立了自己的测试站点来使用脚本。稍后我会将它实现到另一个,但我想从简单开始。这是脚本将打开的站点: 这是form.html的一个示例(它不需要提交任何内容,但只是一个测试): 登录 用户名: 密码: 最后但并非最不重要的一点是我的VBScript: callmain 主要功能 设置IE=WScript.CreateObject(“Int

我想做一个脚本,将打开IE和自动填写在一个外部网站的形式输入。我要填写的输入被放置在一个框架内。因此,
getElementByID
在这里不起作用

我已经建立了自己的测试站点来使用脚本。稍后我会将它实现到另一个,但我想从简单开始。这是脚本将打开的站点:


这是
form.html
的一个示例(它不需要提交任何内容,但只是一个测试):


登录
用户名:
密码:

最后但并非最不重要的一点是我的VBScript:

callmain
主要功能
设置IE=WScript.CreateObject(“InternetExplorer.Application”、“IE”)
可见=真实
即“导航”http://example.com"
等等
用IE文件
.getElementByID(“用户”).value=“CoolUsername123”
.getElementByID(“pswrd”).value=“BestPasswordEver321”
以
端函数
分段等待(IE)
做
WScript.Sleep 500
当IE.ReadyState<4且IE.Busy时循环
端接头
这段代码在其他网站上运行良好,我以前在trello.com上使用过。然而,这个网站不使用框架,我认为这可能是问题所在

我也尝试过使用此代码:

Call Main

Function Main
    Set IE = WScript.CreateObject("InternetExplorer.Application", "IE_")

    IE.Visible = True

    IE.Navigate "http://example.com"
    Wait IE
    With IE.Document 
    set frame = IE.document.getElementsByName("form")(0)
        frame.contentwindow.document.getElementByID("user").value = "CoolUsername123"
        frame.contentwindow.document.getElementByID("pswrd").value = "BestPasswordEver321"
    End With
End Function

Sub Wait(IE)
    Do
        WScript.Sleep 500
    Loop While IE.ReadyState < 4 And IE.Busy
End Sub

我不再得到错误,但是输入中也没有任何值

首先从页面中获取名为“form”的帧。由于它只有名称,我们可以使用该方法并获取返回集合的第一个元素:

set frame = IE.document.getElementsByName("form")(0)
现在使用访问表单字段


我试过用你的方法,但没用。我不知道我的代码是否有问题,或者代码在VBScript中根本不起作用。你可以编辑你的问题并添加你现在正在使用的代码,以便我们检查它是否适用于我们。你的确切意思是什么?我问你是否可以添加不适用于你的问题的现有代码。单击问题下方的“编辑”按钮添加到问题中。使用
即.Document.Frames(“表单”).Document.All(“用户”).Value=“CoolUsername123”
后,我再也不会出现错误。但是输入也没有价值。
set frame = IE.document.getElementsByName("form")(0)
 frame.contentwindow.document.getElementByID("user").value = "CoolUsername123"
 frame.contentwindow.document.getElementByID("pswrd").value = "BestPasswordEver321"