Я пытаюсь использовать класс MSXML2 для входа на сайт и загрузки цен в таблицу. У меня есть список номеров продуктов, которые код использует для поиска продукта, а затем он должен вытащить элемент цены из html.getElementById FirstChild throws Ошибка времени выполнения 91
Моя проблема в том, что я продолжаю получать ошибку «Переменная объекта или с блочной переменной не установлена», и никакое количество дайв-дайвинга не дало мне решения.
Ошибка возникает при document.getElementById("prix").FirstChild.innerHTML = .responseText
Option Explicit
Function loginRematek()
Dim XMLHttpRequest As New MSXML2.XMLHTTP60
Dim xhr As MSXML2.XMLHTTP60
Dim cell As Integer
Dim ItemNbr As String
Dim document As MSHTML.HTMLDocument
'Login to Rematek
With XMLHttpRequest
.Open "POST", "https://rematek-energie.com/eng/customer-login/account- authentication.php", False
.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
.send "name_se_connecter=se_connecter&zebra_honeypot_se_connecter=&[email protected]&motpasse=password&connexion=Sign in"
End With
Debug.Print XMLHttpRequest.responseText
'Get Element
Set xhr = New MSXML2.XMLHTTP60
For cell = 1 To 38
ItemNbr = Cells(cell, 1).Value
With xhr
.Open "GET", "https://rematek-energie.com/eng/pg/1/r/" & ItemNbr, False
.send
If .readyState = 4 And .Status = 200 Then
Set document = New MSHTML.HTMLDocument
document.getElementById("prix").FirstChild.innerHTML = .responseText
Else
MsgBox "Error" & vbNewLine & "Ready state: " & .readyState & _
vbNewLine & "HTTP request status: " & .Status
End If
Cells(cell, 2).Value = .responseText
End With
Next cell
End Function
Опять же, ошибка возникает при document.getElementById("prix").FirstChild.innerHTML = .responseText
HTML, я пытаюсь предназначаться это значение panier_prix_326
, но изменения ID на каждой странице, и как я Я нацелился на несколько страниц, я думал, что лучше ориентировать сначала константу prix
, а затем первый ребенок этого элемента.
<tr>
<td id="col-action">
<div class="prix">
<span id="panier_prix_326">99.40</span>
<div id="prix-detail">MSRP: 152.93$</div>
</div>
</td>
</tr>
'document' новый пустой документ. он не может содержать элемент с id в нем. 'document.getElementById (" prix ")' всегда будет 'nothing' – litelite
Хорошо, теперь я вижу .. Как я могу исправить это, чтобы направить элемент на HTML-страницу страницы? – ActuallyJane