Страницы: 1
RSS
Переключиться на следующую страницу сайта
 
Сведения на сайте помещаются на нескольких страницах. Первая соответственно грузится сразу. Помогите дописать код, чтобы он сымитировал нажатие цифры 4 мышкой, т.е.
перешел на страницу 4.
Сам написал только вот это
Код
Private Sub CommandButton1_Click()
 Dim IE As Object
 Set IE = CreateObject("InternetExplorer.Application")
  IE.Visible = True
IE.Navigate ("http://ras.arbitr.ru")
  
Do While IE.readyState <> 4: DoEvents: Loop
 
 Dim Doc As HTMLDocument
Set Doc = IE.document
 
 
Dim INP_Elements As IHTMLElementCollection
Dim INP As IHTMLElement
Set INP_Elements = Doc.getElementsByTagName("input")
For Each INP In INP_Elements
    If INP.placeholder = "например, А50-5568/08" Then
        INP.Select
        INP.Value = "А40-16910/2014"
    End If
 
Next INP

Dim Button_Elements As IHTMLElementCollection
Dim BtnE As IHTMLElement
Set Button_Elements = Doc.getElementsByTagName("button")

Button_Elements(0).Click
'++++++++++++++++++++++++++++++++++++++++++++++++++

 
 '++++++++++++++++++++++++++++++++++++++++++++++++++
End Sub


В Excel кидаем кнопку и код соответственно вставляем внутрь.


Вроде как надо у страници 1 убрать активность
           <li class="active">
                   <a href="#page1">1</a>

а у соответственно страницы 4 ее добавить
           <li class="active">
                   <a href="#page4">1</a>

Причем поиск надо провести скорее всего по                        <a href="#page4">4</a> потом перейти к его родителю и там уже заниматься  <li class="active">.

В общем у меня в голове каша.
Выручайте.

Со всеми с кем общаюсь по заказу программ для работы с сайтами. данный пост на заказы не влияет. Заказы остаются в силе. :-)
Изменено: puuh - 24.04.2016 22:29:33
 
Так попробуйте:
Код
Dim a As IHTMLElement
For Each a In Doc.getElementsByTagName("a")
    If a.getAttribute("href") = "#page4" Then a.Click: Exit For
Next a
А с капчей что делать будете? Если тут разобраться не можете, - там сложнее будет...
 
puuh, код следует оформлять соответствующим тегом. Ищите такую кнопку и исправьте своё сообщение.
Спасибо!
 
Цитата
Юрий М написал:
код следует оформлять соответствующим тегом. Ищите такую кнопку и исправьте своё сообщение.
Спасибо!
Извиняюсь. На форуме совсем совсем новичок.
 
Игорь, вставил. Не пошло. If не срабатывает.. Стал разбираться. Вставил код для печати.
Код
Dim A_Elements As IHTMLElementCollection
Dim A As IHTMLElement
Set A_Elements = Doc.getElementsByTagName("a")
Dim rr As Range
Set rr = Sheets("Лист2").Range("A1").CurrentRegion
Set rr = rr.Resize(A_Elements.Length, 4)

k = 1
For i = 0 To A_Elements.Length
  rr.Cells(k, 1).Value = A_Elements(i).getAttribute("href")
  rr.Cells(k, 2).Value = A_Elements(i).innerText
  k = k + 1
Next i
k = 1
For Each A In Doc.getElementsByTagName("a")
    rr.Cells(k, 3).Value = A.getAttribute("href")
    rr.Cells(k, 4).Value = A.innerText
     k = k + 1
    If A.getAttribute("href") = "http://ras.arbitr.ru/#page5" Then A.Click: Exit For
Next A
Результат такой
/Rad/Calendar?mode=timetablemonthСохранить в Outlook или Google   Calendar  http://ras.arbitr.ru/Rad/Calendar?mode=timetablemonthСохранить в Outlook или Google   Calendar  
#page11http://ras.arbitr.ru/#page11
#page22http://ras.arbitr.ru/#page22
#page33http://ras.arbitr.ru/#page33
#page44http://ras.arbitr.ru/#page44
#page55http://ras.arbitr.ru/#page55
Заменил в If #page5 на http://ras.arbitr.ru/#page5. Заработало.

Хотя в моем понимании rr.Cells(k, 1).Value = A_Elements(i).getAttribute("href") и  rr.Cells(k, 3).Value = A.getAttribute("href") должно выдавать одно и тоже.
Я не профи, но в моих потребностях изучал Basic, Pascal, Fortran, Ci, Delphi, C++, Word, Excel. Вот блин и до парсинга сайтов добрался. Кому скажу не поверят.
Так что книги, интернет, усидчивость, убивание времени на элементарные вещи для других (ну как без этого мы все учились когда-то с нуля).
Сложные или срочные вещи, я просто заказал. Думаю, что все будет Ок.

р\s Доберусь до проблем с капчами - будем разбираться. Вот видите я уже знаю, что с ними проблемы у новичков, а у Вас уже нет. Кликну клич добрые люди отзовутся. :-))).
 
Поторопился радоваться.
Убрал лишнее (печать) работать перестало.
Редакция файла с печатью переключает.
Млин. Будем думать но завтра.  :D
Изменено: puuh - 25.04.2016 00:39:49
Страницы: 1
Читают тему
Наверх