Я пытаюсь использовать VBA Excel для автоматизации поиска и нажатия определенной ссылки. Проблема в том, что эта ссылка меняется каждый день (или с каждым человеком). Дело в том, что начало атрибута HREF всегда одно и то же, и это единственная ссылка на этой странице, которая имеет такой тип HREF.Поиск ссылок HREF - это отведение неверных ссылок
Я стараюсь не делать это слишком сложным, но я хочу объяснить это, чтобы вы поняли мой код и почему я сделал то, что я сделал: эта ссылка открывает новую страницу, но, поскольку сложно управлять несколькими экземпляры браузера с VBA я решил, что было бы лучше просто поместить код, который будет перемещаться по ссылке в том же браузере, а затем использовать objIE.back для цикла, если потребуется.
Я искал один раз, и связь была 59-й ссылки в документе, поэтому я попытался код, как:
If link59 <> "*ao/party/popuppartyinfo?party*" Then
hrefvalue = line59
'Gets rid of the JavascriptPopup unnecessary text
trimedhrefvalue = Right(link59, 49)
hrefurlvalue = "https://myjobswebsitehere.com" & trimedhrefvalue
objIE.navigate hrefurlvalue
сам код работал, но, видимо, эта связь не всегда 59-й ссылки на странице в зависимости на счете.
Так что теперь у меня есть следующие:
Application.StatusBar = "Trying to find link..."
Application.Wait (Now() + TimeValue("00:00:05"))
'objIE.document.parentWindow.execScript "execute('RefreshList');"
Set ieLinks = objIE.document.getElementsByTagName("a")
Do Until Progress = True
For Each Links In ieLinks
If Links.innerText = "/ao/party/popuppartyinfo?partyId" Then
'Links.Click
Application.StatusBar = "Found link! Please wait"
Links.Value = hrefvalue
trimedhrefvalue = Right(Links, 49)
hrefurlvalue = "https://myjobswebsitehere.com" & trimedhrefvalue
Progress = True
Exit For
End If
Next Links
Loop
При выполнении этого кода, он всегда открывает страницу, которая не имеет ничего общего с тем, что я искал. На самом деле ни одно из слов в «/ ao/party/popuppartyinfo? PartyId» даже не отображается в ссылке, которую он открывает неправильно.
HTML-кода я пытаюсь получить следующим образом:
<a href="javascript:fnOpenWindow('/ao/party/popuppartyinfo?partyId=11111&nav=off')">
Весь HREF остается неизменным для каждого отдельного клиента для части «partyID», которая изменяется, за исключением.
Мой вопрос в том, что я делаю неправильно здесь, что приводит к тому, что этот поиск возвращает результаты, которые не имеют никакого отношения к внутреннему тесту, который я указал?
Если это вообще возможно, опубликовать фактический адрес, а не 'myjobswebsitehere.com'. Это облегчит кому-то сканирование страницы и поможет вам ответить. – FreeMan
@FreeMan К сожалению, веб-сайт, с которым я манипулирую, защищен не только именем пользователя и паролем, но и частной VPN, поэтому нет возможности, чтобы другие могли смотреть на сайт, если они не сидели на моем компьютере. Я могу опубликовать любой соответствующий HTML-код здесь, хотя, если потребуется, я изменю конфиденциальную информацию о клиенте. Что-нибудь, видимо, не так с моим кодом, чтобы найти конкретный HREF? – JGoldz75
К сожалению, я не эксперт, вам нужно посмотреть на этот кусочек кода, я просто разместил комментарий в надежде, что вы получите ответ раньше. – FreeMan