需要通过msexcel vba对象获取getelementbyid 424

需要通过msexcel vba对象获取getelementbyid 424,vba,excel-2010,getelementbyid,Vba,Excel 2010,Getelementbyid,我一直在努力让getelementbyid(或name)代码正常工作。我想做的是提交登录详细信息而不使用sendkeys。可能只是不了解网站的问题。我可以通过以下方式查看元素: MsgBox(Mid(ObjIE.Document.frames(1.Document.body.outerHTML,18001000)) 其中显示id=userName和name=userName。但当我尝试获取ElementById时,它会出现一个需要对象的错误,好像它不在那里一样。给你 而不是此URL 我直接导航到

我一直在努力让getelementbyid(或name)代码正常工作。我想做的是提交登录详细信息而不使用sendkeys。可能只是不了解网站的问题。我可以通过以下方式查看元素:

MsgBox(Mid(ObjIE.Document.frames(1.Document.body.outerHTML,18001000))

其中显示id=userName和name=userName。但当我尝试获取ElementById时,它会出现一个需要对象的错误,好像它不在那里一样。

给你

而不是此URL

我直接导航到框架src下方

<frame name="Login" src="LoginGenesis.aspx?bgColor=FFFFFF&trimColor=FF6600" frameBorder="0" marginWidth="0" marginHeight="0" scrolling="auto">


子网站()
Dim IE作为对象,Doc作为对象,UserName作为对象,Password作为对象,strCode作为字符串
设置IE=CreateObject(“internetexplorer.application”)
可见=真实
“即导航”http://fieldwork.genesisenergy.co.nz/"
即“导航”http://fieldwork.genesisenergy.co.nz/LoginGenesis.aspx?bgColor=FFFFFF&trimColor=FF6600"
Do While IE.readystate 4:DoEvents:Loop
Set Doc=CreateObject(“htmlfile”)
Set Doc=IE.document
Set UserName=Doc.getelementbyid(“用户名”)
UserName.Value=“santosh”
设置密码=Doc.getelementbyid(“用户密码”)
密码。值=”santosh@123"
设置btnLogin=Doc.getelementbyid(“登录用户”)
btnLogin。单击
端接头

我相信它的基本原理是将元素安排在框架内。你可以分享这个链接吗?你可以参考这个是的,我花了很多时间试图绕过那些框架,但似乎什么都做不到。网站就在这里:我非常感谢你们花时间把这些都写出来。它工作得很好。我不会想到导航到框架本身,所以你帮我省去了很多小时的挫折@user2473828乐意帮忙:)最后一件事。当我与合法用户尝试此操作时,它会在点击提交键后出错:“window.parent.frames.1.location”为空或不是对象行:41 Char:6 Code:0 URI:anyideas?@user2473828登录后尝试重定向到url。甚至我也需要用户id来查看点击提交键后发生了什么。我已经尝试过了,但它有刷新页面和丢失数据的习惯。您能否与用户一起登录test:并按照您的代码通过(删除@)
  Sub Website()

    Dim IE As Object, Doc As Object, UserName As Object, Password As Object, strCode As String


    Set IE = CreateObject("internetexplorer.application")
    IE.Visible = True
   ' IE.navigate "http://fieldwork.genesisenergy.co.nz/"

      IE.navigate "http://fieldwork.genesisenergy.co.nz/LoginGenesis.aspx?bgColor=FFFFFF&trimColor=FF6600"

        Do While IE.readystate <> 4: DoEvents: Loop

        Set Doc = CreateObject("htmlfile")
        Set Doc = IE.document

        Set UserName = Doc.getelementbyid("userName")
        UserName.Value = "santosh"


        Set Password = Doc.getelementbyid("userPassword")
        Password.Value = "santosh@123"


       Set btnLogin = Doc.getelementbyid("loginUser")
        btnLogin.Click
End Sub