Прошу прощения за непрофессиональный подход.
Сегодня на протяжении дня изучал различные ресурсы, особенно помог вот этот(если вдруг кто тоже столкнётся с той же проблемой):
https://www.youtube.com/watch?v=dShR33CdlY8
Сейчас попытаюсь описать всё основательно.
Имеем сайт, например: https://www.dimex.ws/kalkulyator/ekspress/
Заходя по данной ссылке попадаем на страницу, в которой сначала нужно выбрать "Вид услуги", затем ещё раз "Вид услуги" и в конце в итоге попадём на форму калькулятора.
Соль тут в том, что html код подгружается только после выбора опр. опции.
Если конспектировать, то вот что имеем до выбора услуги:
<div class="form-horizontal">
<div id="selectBox"><div class="control-group form-group row">
<div class="controls2 col-12"><select name="sel[]" class="form-control">
<option value="58">Выберите вид услуги</option><option value="4">Доставка по городу</option>
<option value="5">Доставка по стране</option><option value="6">Международная доставка</option>
</select>
</div>
</div>
</div>
<div id="f1"><!-- ||--></div>
</div>
И соответственно после в id "f1" у нас приходит:
<div class="form-horizontal">
<div id="selectBox"><div class="control-group form-group row"><div class="controls2 col-12">
<select name="sel[]" class="form-control"><option value="58">Выберите вид услуги</option><option value="4">Доставка по городу</option>
<option value="5">Доставка по стране</option><option value="6">Международная доставка</option></select></div></div><div class="control-group form-group row">
<div class="controls2 col-12"><select name="sel[]" class="form-control"><option value="59">Выберите вид услуги</option><option value="7">Доставка по вашему городу</option>
<option value="8">Доставка по другому городу</option></select></div></div></div>
<div id="f1"><!-- 5 ||--><script>
function addListBox() {
var myDynamoSelect = $('select[id="packaging"]');
И далее идёт ещё куча кода, который вставлять сюда бессмысленно, суть я думаю и так понятно.
Я понимаю, что судя по всему тут используется эльфийский, который я не знаю, а на изучение которого у меня уйдёт следующий месяц, из-за чего в частности для меня использовать подключение через какой-нибудь MSXML2.XMLHTTP60 бессмысленно.
По этому я стараюсь встать на костыли и запустив Internet Explorer дать ему команду сымитировать пользовательский клик и выбор опции. Пишу следующий код:
Sub WebIE_Connect()
Dim IE As New SHDocVw.InternetExplorer 'Подрубаем IE
Dim HTMLDoc As MSHTML.HTMLDocument 'Подрубаем работу с HTML
Dim Checked As MSHTML.IHTMLElementCollection 'Подрубаем элемент из HTML
IE.Visible = True 'Врубаем видимость IE
IE.Navigate "https://www.dimex.ws/kalkulyator/ekspress/" 'Заходим на сайт
'До тех пор, пока загрузка страницы не произойдёт, бездействуем:
Do While IE.ReadyState <> READYSTATE_COMPLETE Or IE.Busy
Loop
Set HTMLDoc = IE.Document 'Пихаем HTML код в переменную
Set Checked = HTMLDoc.getElementsByTagName("select") 'Записываем все элементы с тегом "Select"(она там одна, так что можно было и на прямик обратиться, но да пофиг)
Application.Wait Now + TimeSerial(0, 0, 3) 'Ждём 3 секунды, ибо IE нужно время, что бы прогрузиться
Checked(0).Value = "4" 'Меняем опцию на "Доставка по городу"
Checked(0).Click 'Кликаем
MsgBox "Сделано!", , "Ляляля!!!" 'Радуемся тому, что нихрена не получилось ((
End Sub
Как видно, если запустить данный код, то опция визуально поменяет своё значение, но страница при этом не подзагрузиться.
Собственно вопрос, есть ли возможность как сымитировать нажатие, а ещё лучше сделать это без IE. Очень прошу помочь, по возможности, накидайте пожалуйста ссылок на статьи по данной теме, так как я в гугле ничего найти не сумел.
Заранее - спасибо!