Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

VBA/IE-Strona nie czyta hasła podczas logowania się/ document w iFrame

blacknigga 13 Paź 2016 14:09 666 11
  • #1 13 Paź 2016 14:09
    blacknigga
    Poziom 13  

    Witam,

    Chcę się zalogować na stronę pewnego banku używając loginu i hasła.

    Kod: html
    Zaloguj się, aby zobaczyć kod

    Używam poniższego kodu do wpisania loginu i hasła. Jednak gdy wpisuje hasła to jest ono widoczne (nie jest zamaskowane), przez co wyskakuje mi błąd bym podał hasło.
    Kod: vb
    Zaloguj się, aby zobaczyć kod

    Hasło maskuje się dopiero wtedy jak przed wpisaniem hasła umieszczę kursor myszki na polu hasła. Poniższy select nie działa
    Kod: vbnet
    Zaloguj się, aby zobaczyć kod

    W jaki sposób można wpisać poprawnie hasło? Jakieś zabezpieczenie na serverze przed automatyzacją?

    0 11
  • #2 13 Paź 2016 14:45
    JacekCz
    Poziom 36  

    blacknigga napisał:
    Witam,

    Chcę się zalogować na stronę pewnego banku używając loginu i hasła.
    ....
    Jakieś zabezpieczenie na serverze przed automatyzacją?


    Otwierałeś internet w ostatnich latach?
    Może Ci umknęło, jak banki na wyścigi podnoszą poprzeczkę

    0
  • Pomocny post
    #3 13 Paź 2016 14:53
    JRV
    Specjalista - VBA, Excel

    A tak?
    IE.document.getElementById("password1").Value = Passw
    p.s.
    lub
    IE.document.getElementById("password1").innerText = Passw

    0
  • #4 13 Paź 2016 15:56
    blacknigga
    Poziom 13  

    JRV napisał:
    A tak?
    IE.document.getElementById("password1").Value = Passw
    p.s.
    lub
    IE.document.getElementById("password1").innerText = Passw

    Obydwie metody działają poprawnie, ale po dodaniu polecenia Select.
    Kod: vbnet
    Zaloguj się, aby zobaczyć kod

    Tylko jaka jest różnica pomiędzy twoim kodem Value a moim? InnerText działa zamiennie z Value? To jest coś w stylu InnerText - in, outterText- out?

    0
  • #5 13 Paź 2016 16:28
    JRV
    Specjalista - VBA, Excel

    Jeśli analizy

    blacknigga napisał:
    Set tbody = IE.document.body.document.getElementById("form1")
    Set frm = tbody.document.getElementById("userName1")

    Będzie to
    Set frm =IE.document.body.document.getElementById("form1").document.getElementById("userName1")
    tak, jakby traci sens

    Dodano po 2 [minuty]:

    JRV napisał:
    InnerText działa zamiennie z Value?

    zależy od kodu strony i wbudowane funkcje. Czasami jeden działa, inne nie i na odwrót

    0
  • #6 14 Paź 2016 08:30
    blacknigga
    Poziom 13  

    Chcę to zrozumieć dlaczego tak a nie inaczej:)

    JRV napisał:
    Będzie to
    Set frm =IE.document.body.document.getElementById("form1").document.getElementById("userName1")
    tak, jakby traci sens

    No ok, troche jest to zapętlone, może zbyteczne, ale zaznaczało odpowiedni element na stronie i nawet wpisywało w odpowiednie miejsce. Wziąłem to ze starego swojego kodu, wtedy z tego co pamiętam jak chciałem iść skrótem i odrazu dać getElementById to mi nie działało.
    Np poniższy kod (przed 3 lat co prawda) na skróty (odrazu getElementById("btnLogon") by nie działał, stąd taki kod
    Kod: vb
    Zaloguj się, aby zobaczyć kod

    Czyli tutaj tak samo działa zastosowanie
    Cytat:
    zależy od kodu strony i wbudowane funkcje. Czasami jeden działa, inne nie i na odwrót

    0
  • #7 14 Paź 2016 09:05
    JRV
    Specjalista - VBA, Excel

    Przed pisać kod VBA, patrzę na kod strony i jej elementów.
    Istnieją w kodzie strony również funkcje, które mogą zmienić zachowanie strony.
    Obiekt 'document' jest na najwyższym poziomie w strukturze strony.
    wtedy

    blacknigga napisał:
    tBody.Children(5).document.getElementsByTagName("td")(0).document
    dla mnie jest nielogiczne.
    Ale nie jestem tutaj dla wykłady, tym bardziej że nie mówią po polsku płynnie.
    Istnieje ważny niuans - Jeśli przeglądarka dla jakiegoś powodu sprawia, że nawigacja, należy ponownie przypisać do zmiennej document

    0
  • #8 14 Paź 2016 10:44
    blacknigga
    Poziom 13  

    A co jeśli jest taka sytuacja?
    VBA/IE-Strona nie czyta hasła podczas logowania się/ document w iFrame

    JRV napisał:
    Istnieje ważny niuans - Jeśli przeglądarka dla jakiegoś powodu sprawia, że nawigacja, należy ponownie przypisać do zmiennej document

    Jeżeli w trakcie macro, zmienie adres strony IE.Navigate (URL), to wtedy na nowo trzeba przypisać document? Bo nowy adres strony?

    0
  • #9 14 Paź 2016 11:14
    JRV
    Specjalista - VBA, Excel

    blacknigga napisał:
    zmienie adres strony IE.Navigate (URL), to wtedy na nowo trzeba przypisać document?
    Oczywiście
    blacknigga napisał:
    A co jeśli jest taka sytuacja?
    Miałem na myśli np.
    Code:
    Set tstr = IE.document
    tzn. do obiektu tstr przypisana wzystka strona

    0
  • #10 14 Paź 2016 12:59
    blacknigga
    Poziom 13  

    Jak się mogę dostać do drugiego dokumentu zaznaczonego na żółto? Czyli document w iFrame.
    VBA/IE-Strona nie czyta hasła podczas logowania się/ document w iFrame

    Kod: vbnet
    Zaloguj się, aby zobaczyć kod

    GetElementById czyta zły appdiv (zaznaczony na żółto). Tak mi się wydaje przynajmniej
    Kod: vbnet
    Zaloguj się, aby zobaczyć kod

    0
  • #11 14 Paź 2016 13:24
    JRV
    Specjalista - VBA, Excel

    Zapisz tu stronu i Daj mi mail lub PW.
    Ten fragment nie powiedzieć jednoznacznie.

    blacknigga napisał:
    ("iframe")(3) 'iframe HTML_MC
    Czy na pewno to?

    0
  • #12 14 Paź 2016 14:49
    blacknigga
    Poziom 13  

    Poszło! Trochę kombinowania ale się udało:)

    Kod: vb
    Zaloguj się, aby zobaczyć kod


    Jeszcze mam pytanie. Po IE.navigate gdzie pojawiają się iFrames (czyli mini strona na stronie?). Przy wgrywaniu się strony pod iframe kod While IE.Busy Or IE.readyState <> 4: DoEvents: Wend nie działa

    0