2013-03-26 1 views
1

Привет, У меня есть код, который откроет Internet Explorer, перейдите на сайт, введите идентификатор пользователя и пароль и, наконец, нажмите кнопку входа.VBA macro для открытия Mozilla Firefox

Код:

Public Sub LOGIN() 

    Dim objIE As SHDocVw.InternetExplorer 
    Dim htmlDoc As MSHTML.HTMLDocument 
    Dim htmlInput As MSHTML.HTMLInputElement 
    Dim htmlColl As MSHTML.IHTMLElementCollection 

    Set objIE = New SHDocVw.InternetExplorer 

    With objIE 
     .Navigate "https://website.co.in" ' Main page 
     .Visible = 1 
     Do While .READYSTATE <> 4: DoEvents: Loop 
     Application.Wait (Now + TimeValue("0:00:02")) 

     Set htmlDoc = .document 
     Set htmlColl = htmlDoc.getElementsByTagName("INPUT") 
     Do While htmlDoc.READYSTATE <> "complete": DoEvents: Loop 
     For Each htmlInput In htmlColl 
      If htmlInput.Name = "UserName" Or htmlInput.Type = "text" Then 
       htmlInput.Value = "Adidas" 
      Else 
       If htmlInput.Name = "password" Then 
       htmlInput.Value = "Daddy123" 

       End If 
      End If 
     Next htmlInput 

     Set htmlDoc = .document 
     Set htmlColl = htmlDoc.getElementsByTagName("input") 
     Do While htmlDoc.READYSTATE <> "complete": DoEvents: Loop 
     For Each htmlInput In htmlColl 
      If Trim(htmlInput.Type) = "submit" Then 
       htmlInput.Click 
       Exit For 
      End If 
     Next htmlInput 
    End With 
End Sub 

Но как веб-сайт, для которого я создал этот сценарий не поддерживает Internet Explorer, я хочу, чтобы открыть то же самое в Firefox. Я бессознателен, и до сих пор я ничего не пробовал. Пожалуйста, помогите мне.

+0

К сожалению, да :(Я понятия не имею, как это сделать – user2165404

+0

Вернемся к исходной проблеме. Вы говорите, что веб-сайт не поддерживает Internet Explorer? Что в этом плохого? (С веб-сайтом, то есть.) –

+0

Кроме того, вы уверены, что хотите сохранить пароль, незашифрованный в текстовом файле? –

ответ

3

Firefox не предоставляет объект COM, поэтому его нельзя контролировать, как можно управлять IE. Возможно, вы сможете достичь своей цели с помощью другого инструмента автоматизации, хотя, например, Selenium или AutoIt.

Другим вариантом может быть нюхать трафик аутентификации (то есть коммуникация, которая происходит при нажатии на кнопку «Вход») с чем-то вроде Fiddler, а затем использовать VBScript для автоматизации входа с XMLHTTPRequest:

Set req = CreateObject("MSXML2.XMLHTTP.6.0") 
req.open "POST", "http://www.example.org/", False 
req.setRequestHeader "Content-Type", "application/x-www-form-urlencoded" 
req.send "field1=foo&field2=bar&..." 
Смежные вопросы