Страницы: 1
RSS
Как программно нажать на кнопку в браузере черезе VBA
 
Доброго окончания рабочего дня всем :D Помогите с задачкой: нужно нажать на кнопку скачать на сайте. Макрос заходит на сайт, но на строке нажатия перестает работать. Пытался как-то исправить самостоятельно, но увы не получается. Нужно кликнуть ACTION-export TARGET-XLSX, а вот как это сделать я не знаю, ниже часть кода со страницы и мой неловкий макрос. Подскажите, пожалуйста, последнюю строку, чтобы происходило нажатие на кнопку.
Код
<li class="ACTION-export TARGET-XLSX"><span class="_GANK _GATi"></span><span class="_GAnr">Excel (XLSX)</span></li>
Код
    Set IE = CreateObject("InternetExplorer.Application")
    IE.Visible = True
    IE.navigate (Cells(1, 1))
    
    Do While IE.Busy: Loop
    IE.document.getElementsByClassName("ACTION-export TARGET-XLSX").Click
[CODE][/CODE]Отдельное спасибо за ссылку, где можно на русском языке почитать про взаимодействие с веб-страничкой через VBA.
Изменено: Andyvier - 07.03.2014 16:10:31
 
Какой сайт?.
Можно во многих случаях и  без браузера скачать,авторизация не помеха.
 
Google Analytics  ;)   Ссылку научился программно открывать через определенный браузер, а вот со скачиванием проблема.
 
Что бы не плодить одинаковые темы задам вопрос здесь.
Есть определенный сайт в местной сети, так вот не получается там нажать на кнопку.
Помогите.
Код
<html>
<meta http-equiv="Content-Type" content="text/html; charset=IBM866">
<title>Пр </title>
<link rel="stylesheet" type="text/css" href="/style.css"></head>
<body>
<h2 align="center">Про</h2>
<form method="POST" ACTION="akos_all.cgi">
<table class=datatable width="100%">
<tr bgcolor=CCCCFF><td><b>Техн</b></td><td><b>Ава</b></td><td><b>По</b></td></tr>
<tr valign="Top"><td>
<input type=radio name=PROT value=T174552>174552
<input type=radio name=PROT value=T174559>174559
<input type=radio name=PROT value=T174726>174726
<input type=radio name=PROT value=T174745>174745
<input type=radio name=PROT value=T345761>345761
<input type=radio name=PROT value=T345781>345781
</td><td>
</td><td>
</td></tr>
</table><br>
              <div align="center"> 
                <input type="submit" name="Submit" value="Submit">
             </div>
</form></body></html>
 
Изменено: Stalevar - 16.06.2016 21:45:59
 
А где то, что не получается?
Написал прямо в в ответе. должно работать.
Код
for each sb in IE.document.getElementsByTagName("input")
if sb.value="Submit"    and sb.name="Submit" then sb.Click:exit for
next

 
Вот код макроса
egonomist выручал как то. :)
Код
s2 = ("http://10.2.19.215/cgi-bin/prot/akos_all.cgi")

UserForm2.WebBrowser1.Navigate (s2) 'переходим на ссылку
Do While UserForm2.WebBrowser1.busy Or (UserForm2.WebBrowser1.ReadyState <> 4): DoEvents: Loop
UserForm2.WebBrowser1.Document.Forms(0).Elements(5).Checked = True 
DoEvents
UserForm2.WebBrowser1.Document.Forms(0).Submit 'вот здесь ошибка

 
Doober
Код
for each sb in IE.document.getElementsByTagName("input")if sb.value="Submit"    and sb.name="Submit" then sb.Click:exit fornext

Это в замен вот этой строчки вставить?
Код
UserForm2.WebBrowser1.Document.Forms(0).Submit 'вот здесь ошибка
 
И еще не получается на жать на нужную радио кнопку, раньше нажимал просто номер элемента ставил, а сейчас нужно по value.
Код
<input type=radio name=PROT value=T174552>174552


Проверить смогу только ночью на работе.
Может вот так получится.
Код
UserForm2.WebBrowser1.document.getelementbyID("PROT").Value =T174552>174552  'Ставим точку
UserForm2.WebBrowser1.document.getelementbyID("Submit").Click 'Жмем на кнопку
 
Цитата
Stalevar написал:
Может вот так получится.
Не получится.Где у вас ИД на эти элементы
Цитата
<input type="submit" name="Submit" value="Submit">
 
Doober,
Нет на  них ID, код html выкладывал выше.
Изменено: Stalevar - 17.06.2016 13:43:52
 
Придется вот так делать
Код
Me.WebBrowser1.Document.forms(0).elements.Item(3).Checked = True 'Ставим точку, осталось найти номер элемента по имени радио точки
Me.WebBrowser1.Document.forms(0).elements(200).Click' нажатие кнопки, также осталось найти номер элемента
 
Проверил, работает :)
Код
UserForm2.WebBrowser2.Document.getelementbyID("Submit").Click 'Жмем на кнопку
Изменено: Stalevar - 18.06.2016 16:15:27
 
Не получается не как нажать на
<input type=radio name=PROT value=T174552>174552

Если только вот так
Код
UserForm2.WebBrowser2.Document.forms(0).elements(0).Checked = True

но так придется узнавать номер elements с нужным  value
Изменено: Stalevar - 18.06.2016 21:58:45
 
Решено. Помогли на соседнем форуме.
Всем спасибо.


Код
pl = "T" & Sheets("Выбор Журнал АКП-1").Range("$e$6")
With UserForm2.WebBrowser2.Document.Forms(0)
     For i = 0 To .Length - 1
         If .Elements(i).Value = pl Then
            .Elements(i).Checked = True
            .Elements("Submit").Click
            Exit For
         End If
     Next
End With
Изменено: Stalevar - 19.06.2016 16:30:36
 
Что бы не плодить одинаковые темы задам вопрос здесь.
По причине скудознания долго сидел на SendKeys, но теперь это уже не вариант(
Как я понимаю IE, WebBrowser, WebBrowser1,2итд это все IE,
но мой сайт не работает с IE абсолютно, поэтому пользую Хром.

Итак, вот я запустил Хром через Shell (адрес_браузера & " -url "  адрес_страницы)
и хотел кликнуть вот сюда: <input name="IMPORT_FILE" class="typefile" size="20" type="file">
а как теперь выполнить Do While ie.busy: Loop  и  WebBrowser1.Document.getElementsByClassName("typefile").Click  
для моего Хрома?
Изменено: Сергей - 25.12.2017 10:10:00
 
Сергей, ссылка на сайт будет?
А так, мы будем играть в гадания: "подойдет - не подойдет"
Вы запускаете сам хром с командой подстановки ссылки и все, он нигде у вас не конфигурирует как vba объект для дальнейшей обработки.
 
Цитата
Jungl написал: ссылка на сайт будет?
Ссылка не выходит - это браузерная версия корпоративной CRM.
Код элемента я выложил: <input name="IMPORT_FILE" class="typefile" size="20" type="file">
Цитата
Jungl написал: он нигде у вас не конфигурирует как vba объект для дальнейшей обработки.
Вот! Именно про это я и говорю. А все варианты решенийс объектами, которые получается найти,  заточены под IE.
Прошу, подсказать простой и действенный способ клика этого элемента с использованием Chrome.
 
второй мой вопрос за 5 лет и второй раз игнор...  
Изменено: Сергей - 29.05.2018 19:20:12
 
Здравствуйте,
Подскажите, как с помощью vba кликнуть на следующую кнопку?
Показать e-mail

Код не кликает
Код
  Dim varReturn As Variant

    Set ie = CreateObject("InternetExplorer.Application")
    ie.Visible = True
    ie.Navigate ("[URL=http://ati.su/firms/1417851/info"]http://ati.su/firms/1417851/info&quot;[/URL])
    
   'ie.Document.All.Item("javascript:void(0)").submit 'клик по кнопке
    '[URL=http://ati.su/firms/1417851/info]http://ati.su/firms/1417851/info[/URL]

    'varReturn = SysCmd(acSysCmdInitMeter, "Entering to pecom.Ru ...", 100)
    Do Until ie.document.readystate = "complete"
        i = i + 1
        'varReturn = SysCmd(acSysCmdUpdateMeter, Int(i / 30000 * 100))
        If i > 29999 Then
           'varReturn = SysCmd(acSysCmdClearStatus)
           Beep
           MsgBox "Something is wrong. pecom.Ru is not accessible", vbCritical, "pecom.Ru"
           ie.Quit
           Set ie = Nothing
           Exit Sub
        End If
        DoEvents
    Loop
    'varReturn = SysCmd(acSysCmdClearStatus)
    
   ' ie.Document.getelementbyID("rptContact_ctl00_hlShowMail").All(0).RaiseEvent ("onclick")
    
         Set a = ie.document.getElementsByTagName("A")
    For i = 0 To a.Length - 2
      If InStr(1, a(i).outerHTML, "emailShowLink") > 0 Then
        a(i).Click
      End If
    Next i
    
    For Each sb In ie.document.getElementsByTagName("rptContact_ctl00_hlShowMail")
If sb.Value = "Submit" And sb.Name = "Submit" Then sb.Click: Exit For
Next
    
    ie.document.getElementsByClassName("rptContact_ctl00_hlShowMail").submit
    ie.document.getelementbyID("rptContact_ctl00_hlShowMail").Click
     ie.document.All.Item("rptContact_ctl00_hlShowMail").Click 'клик по кнопке
     
ie.document.All.Item("rptContact_ctl00_hlShowMail").Click
    ie.document.Forms.Auth.submit
 
Цитата
Сергей написал:
все варианты решенийс объектами, которые получается найти,  заточены под IE.Прошу, подсказать простой и действенный способ клика этого элемента с использованием Chrome.
))
 
  • ChromeDriver
 
Спасибо, посмотрю.
Страницы: 1
Читают тему
Наверх