html - Browser.document.getElementById("element_name").Value 失败
问题描述
因此,我的问题与在代码的一部分中起作用而不在另一部分中起作用的方法调用有关。
我有一些全局声明的东西,然后是 3 个潜艇。这里是全球
Declare Function apiShowWindow Lib "user32" Alias "ShowWindow" _
(ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Global Const SW_MAXIMIZE = 3
Global Const SW_SHOWNORMAL = 2
Global Const SW_SHOWMINIMIZED = 1
Dim ie As InternetExplorerMedium
这是主体。它由 3 个 Subs 组成,一个用于登录,一个用于等待,另一个用于在您登录后访问另一个页面。一切正常,直到“barcodedailyesterday”Sub 的最后几行。在“websiteLogin”子程序中工作的完全相同的方法调用在“BarcodeDetailYesterday”子程序中不起作用。错误是“运行时错误 91:对象变量或未设置块变量”。我尝试添加额外的延迟以确保它有时间加载,我尝试过明智地做所有事情,但它每次都会在 getElementById("").Value 部分崩溃。
有没有人有任何想法?
Sub websiteLogin()
Set ie = New InternetExplorerMedium
Const Url$ = "url"
Dim Username As String, Password As String
Username = "username"
Password = "password"
'#####Open Internet Explorer and sign#####
'create IE instance & navigate to login page
ie.navigate Url
Call waitonIE
'use data from Excel file to log in
ie.document.getElementById("fm_username").Value = Username
ie.document.getElementById("fm_password").Value = Password
ie.document.forms(0).submit
End Sub
Sub waitonIE()
'####Wait on Internet Explorer to become stable before working with it####
ie.Visible = True
apiShowWindow ie.hwnd, SW_MAXIMIZE
While ie.Busy Or ie.readyState <> 4:
DoEvents:
Wend
End Sub
Sub BarcodeDetailYesterday()
'open Internet Explorer and sign in
Call websiteLogin
'navigate to page
ie.navigate "new url"
'create time/date parameters
Dim Yesterday As Date
Yesterday = Date - 1
startDate = Yesterday
startTime = "00:00:00"
endDate = Yesterday
endTime = "23:59:59"
Call waitonIE
'insert data into fields
'Application.Wait (Now + TimeValue("0:00:03"))
ie.document.getElementById("fm_date").Value = startDate
ie.document.getElementById("fm_time").Value = startTime
ie.document.getElementById("fm_date2").Value = endDate
ie.document.getElementById("fm_time2").Value = endTime
End Sub
解决方案
推荐阅读
- javascript - 防止将对象添加到已存在的数组中
- blazor - 如何安装 blazorhybrid 项目模板?
- java - 变量可能没有使用输入数据初始化
- python - psycopg2 文件夹压缩到 python venv lambda 函数中
- typescript - 防止函数调用中的类型冲突
- swift - 如何编写重启应用的方法或函数
- android - 在 espresso 测试用例中创建新的 Firebase 用户时从未调用过 OnCompleteListener
- lets-encrypt - 让我们加密 Bitnami SSL 工具错误:[帐户] 未注册。使用“运行”注册一个新帐户
- javascript - Javascript 使用 alt 标签从 html 中选择
- r - 从 R 中的 URL 下载压缩文件