1

Тема: AHK: Авторизация в вк с помощью COM object

Суть проста, нужна возможность авторизации через Internet Explorer с помощью COM команд.
Есть такой код:


wb := ComObjCreate("InternetExplorer.Application") ; Основа всего
wb.Visible := True ; Видимость окна
wb.Navigate("https://m.vk.com/login?role=fast&to=&s=1") ; Переходит по ссылке
IELoad(wb) ; ждем загрузки страницы
IELoad(wb)    ;You need to send the IE handle to the function unless you define it as global.
{
    If !wb    ;If wb is not a valid pointer then quit
        Return False
    Loop    ;Otherwise sleep for .1 seconds untill the page starts loading
        Sleep,100
    Until (wb.busy)
    Loop    ;Once it starts loading wait until completes
        Sleep,100
    Until (!wb.busy)
    Loop    ;optional check to wait for the page to completely load
        Sleep,100
    Until (wb.Document.Readystate = "Complete")
Return True
}
wb.Document.All.email.Value := "Login"
wb.Document.All.pass.Value := "Pass"

Он переходит в мобильную версию Vk.com и вводит, в двух полях, Логин и пароль.

Все бы хорошо, но я не знаю как нажать клавишу Войти.

Если у двух элементов сверху, есть Имя email и pass, то у клавиши "Войти" имени элемента я не нашел, только это:


<input class="button wide_button" value="Войти" type="submit">

тогда как у ,  например элемента email имеется строчка name= :

<input class="textfield" name="email" value="" type="text" placeholder="Телефон или email">

.

Вопрос..
как нажать по этой кнопке войти? Можно ли как то использовать class'ы в строчке кода?Спасибо!

Люблю когда мне понижают репутацию (мне правда все равно)

2

Re: AHK: Авторизация в вк с помощью COM object

document.querySelector(".button.wide_button")
document.querySelector("input[value='Войти']")
document.querySelector("input[type='submit']")

Подробней про селекторы почитайте в интернетах.

3 (изменено: svoboden, 2018-08-04 17:43:47)

Re: AHK: Авторизация в вк с помощью COM object

У меня обычный клик работает:

If !IsObject(ie)
	ie := ComObjCreate("InternetExplorer.Application")
ie.Visible := true
ie.Navigate("https://m.vk.com/login?role=fast&to=&s=1")
IELoad(ie)
ie.document.getElementsByName("email")[0].Value := "email"
ie.document.getElementsByName("pass")[0].Value := "pass"
ie.document.getElementsByClassName("button wide_button")[0].Click()
Return

IELoad(Pwb)
{
	While !(Pwb.busy)
		Sleep, 100
	While (Pwb.busy)
		Sleep, 100
	While !(Pwb.document.Readystate = "Complete")
		Sleep, 100
}

4

Re: AHK: Авторизация в вк с помощью COM object

Последний вариант у меня тоже работает, а первый, попробовал вставить строку кода, не проходила авторизация.
Спасибо вам обоим, хотя бы теперь думаю что все получится.

Люблю когда мне понижают репутацию (мне правда все равно)