IE getElementbyId 不工作
IE getElementbyId not working
我正在尝试单击网页上的 'a' 元素,但我无法找到它不起作用的原因。
这是我的 VBA 代码。
Function answer1(ie3 As InternetExplorer, str_anwer As String, answerid As String)
Dim ie4 As New InternetExplorer
Dim a As Object
Set ie4 = ie3
ie4.Document.getElementbyId("view=" & answerid).Click
ie4.Document.getElementbyId("reply_cont").Value = str_anwer
End Function
错误:属性 未找到
这是网页中的 HTML 代码,我认为它位于
<tr>
<td class="thm">208975260</td>
<td><pre>교환</pre></td>
<td class="subject"><a href="#" onClick="return toggleDetail('208975260');" id="view208975260">작동이안되서 교환 원합니다 어떻게 하면되나요?</a></td>
<td class="id"><span class="thm">st******</span><br>한혜진</td>
<td class="thm">2016.09.29 12:53:57</td>
<td id="date208975260"><span class="point2 ls1">미답변</span>
</td>
<td class="ansr">-</td>
</tr>
对不起我的英语
我英语不是很流利。
请告诉我为什么它不起作用
没有参考Microsoft Internet Controls (SHDocVw)和Microsoft HTML对象库 代码可能如下所示。注意 IsNull
调用。当像这样调用 getElementbyId
并且在页面上找不到该元素时,此函数 returns Variant\Null
。
在注释代码中显示了第二个示例。在这种情况下,添加了引用并在 HTMLDocument
类型的变量上调用了 getElementbyId
。如果在页面上找不到该元素,请使用此函数 returns Nothing
。
Sub main()
Dim ie, url, readyStateComplete
readyStateComplete = 4
Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = True
url = "your-url"
ie.navigate url
While ie.Busy Or ie.readyState <> readyStateComplete: DoEvents: Wend
answer1 ie, "<anwer>", "208975260"
ie.Quit
End Sub
Function answer1(ie As Variant, str_anwer As String, answerid As String)
Dim a As Object
If Not IsNull(ie.Document.getElementbyId("view" & answerid)) Then
ie.Document.getElementbyId("view" & answerid).Click
End If
If Not IsNull(ie.Document.getElementbyId("reply_cont")) Then
ie.Document.getElementbyId("reply_cont").Value = str_anwer
End If
' Dim htmlDoc As HTMLDocument
' Set htmlDoc = ie.document
' If Not htmlDoc.getElementbyId("reply_cont") Is Nothing Then
' htmlDoc.getElementbyId("reply_cont").Value = str_anwer
' End If
End Function
了解 Early/Late Binding 之间的差异。
我正在尝试单击网页上的 'a' 元素,但我无法找到它不起作用的原因。
这是我的 VBA 代码。
Function answer1(ie3 As InternetExplorer, str_anwer As String, answerid As String)
Dim ie4 As New InternetExplorer
Dim a As Object
Set ie4 = ie3
ie4.Document.getElementbyId("view=" & answerid).Click
ie4.Document.getElementbyId("reply_cont").Value = str_anwer
End Function
错误:属性 未找到
这是网页中的 HTML 代码,我认为它位于
<tr>
<td class="thm">208975260</td>
<td><pre>교환</pre></td>
<td class="subject"><a href="#" onClick="return toggleDetail('208975260');" id="view208975260">작동이안되서 교환 원합니다 어떻게 하면되나요?</a></td>
<td class="id"><span class="thm">st******</span><br>한혜진</td>
<td class="thm">2016.09.29 12:53:57</td>
<td id="date208975260"><span class="point2 ls1">미답변</span>
</td>
<td class="ansr">-</td>
</tr>
对不起我的英语
我英语不是很流利。
请告诉我为什么它不起作用
没有参考Microsoft Internet Controls (SHDocVw)和Microsoft HTML对象库 代码可能如下所示。注意 IsNull
调用。当像这样调用 getElementbyId
并且在页面上找不到该元素时,此函数 returns Variant\Null
。
在注释代码中显示了第二个示例。在这种情况下,添加了引用并在 HTMLDocument
类型的变量上调用了 getElementbyId
。如果在页面上找不到该元素,请使用此函数 returns Nothing
。
Sub main()
Dim ie, url, readyStateComplete
readyStateComplete = 4
Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = True
url = "your-url"
ie.navigate url
While ie.Busy Or ie.readyState <> readyStateComplete: DoEvents: Wend
answer1 ie, "<anwer>", "208975260"
ie.Quit
End Sub
Function answer1(ie As Variant, str_anwer As String, answerid As String)
Dim a As Object
If Not IsNull(ie.Document.getElementbyId("view" & answerid)) Then
ie.Document.getElementbyId("view" & answerid).Click
End If
If Not IsNull(ie.Document.getElementbyId("reply_cont")) Then
ie.Document.getElementbyId("reply_cont").Value = str_anwer
End If
' Dim htmlDoc As HTMLDocument
' Set htmlDoc = ie.document
' If Not htmlDoc.getElementbyId("reply_cont") Is Nothing Then
' htmlDoc.getElementbyId("reply_cont").Value = str_anwer
' End If
End Function
了解 Early/Late Binding 之间的差异。