powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / "Кликнуть" по меню на Web-странице
25 сообщений из 45, страница 1 из 2
"Кликнуть" по меню на Web-странице
    #36914051
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте, есть веб страница в которой используется меню doiMenu
v.1.5
. Нужно кликнуть по одному из пунктов.
Не пойму как это сделать.
Подскажите что почитать или что я не "вижу в упор"

Спасибо

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
"Кликнуть" по меню на Web-странице
    #36914104
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь Горбонос,

Вы имеете ввиду кликнуть из этого столбика:
Notes
Features
Screenshots
Demo
KnownBug
History
Dowhload
??
...
Рейтинг: 0 / 0
"Кликнуть" по меню на Web-странице
    #36914179
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Найти пункт меню. Пункт меню состоит из дива и таблицы с классом TPopUpItem[цифра], обработчик клика висит на таблице. Иденифицировать пункт можно только по тексту в недрах таблицы и id меню (div с классом TPopUp[цифра]), которому пренадлежит пункт. Если меню статическое, можно по id и порядковому номеру TPopUpItem-потомка.

Осталось выполнить table.FireEvent("click").
...
Рейтинг: 0 / 0
"Кликнуть" по меню на Web-странице
    #36914402
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: Ципихович Эндрю
> Вы имеете ввиду кликнуть из этого столбика:

Нет. Это просто сайт, где можно взять исходный текст для построения меню на веб-странице. Там-же есть документация по
использованию.

> Автор: Antonariy

Не могу сказать, что я все понял и достиг просветления, но кое какие мысли появились, щас буду пробовать.

Попробовал, не совсем понял как сделать table.FireEvent("click").
Пытался сделать так:
Код: plaintext
1.
2.
3.
4.
5.
6.
Set inpS = IE.Document.getElementsByTagName("table")
For Each el In inpS
    Debug.Print el.innerHTML
    If el.Text = "счета" Then
    el.Click
    End If
Next el
Но что-то не срослось. Буду разбиратся дальше.

Спасибо

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
"Кликнуть" по меню на Web-странице
    #36914439
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторПопробовал, не совсем понял как сделать table.FireEvent("click").
Ровно так, как я написал — el.FireEvent "click"
...
Рейтинг: 0 / 0
"Кликнуть" по меню на Web-странице
    #36914987
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: Antonariy
> Ровно так, как я написал — el.FireEvent "click"

На такое выдает: ОшибкаInvalid argument.
0x80070057
Отрабатывает именно el.Click
Почему не знаю, но работает.
Спасибо за подсказку, таблицу в меню, я искал-бы долго :)

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
"Кликнуть" по меню на Web-странице
    #36915021
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: Игорь Горбонос

В перспективе хотелось бы уйти от Set IE = CreateObject("InternetExplorer.Application") и напрямую формировать POST и
GET запросы и отправлять их тем-же XMLHTTPRequest. Но это долгосрочная перспектива

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
"Кликнуть" по меню на Web-странице
    #36915145
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь Горбонос
В перспективе хотелось бы уйти от Set IE = CreateObject("InternetExplorer.Application") и напрямую формировать POST и
GET запросы и отправлять их тем-же XMLHTTPRequest. Но это долгосрочная перспектива


На счёт долгосточной перспективы, поддерживаю
...
Рейтинг: 0 / 0
"Кликнуть" по меню на Web-странице
    #36915691
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь Горбонос,
так что то и не понял, Вы кликнули по меню на ВЭБ странице????
Если да, выложите пжл полный скрипт, поучительным будет для меня сей скрипт
Заранее спасибо
...
Рейтинг: 0 / 0
"Кликнуть" по меню на Web-странице
    #36917364
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: Ципихович Эндрю
> Игорь Горбонос,
> так что то и не понял, Вы кликнули по меню на ВЭБ странице????

Кликнул:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
Option Explicit
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)


Private Sub Command1_Click()
Dim IE As Object, inpS As MSHTML.IHTMLElementCollection
Dim el As MSHTML.IHTMLElement, cel As MSHTML.IHTMLTableCell

Dim s As String, i As Long

'Me.WebBrowser1.Navigate2 "https://corporate.privatbank.ua/", Null, Null, Null, Null
Set IE = CreateObject("InternetExplorer.Application")
IE.navigate "https://client-bank.privatbank.ua/p24/c2b_login?NOXML"
Do While IE.readyState <>  4 
DoEvents
Loop
Sleep  1000 
' Ищем куда и вводим логин/пароль
Set inpS = IE.document.getElementsByTagName("input")
For Each el In inpS
    Debug.Print el.toString
    If el.Name = "UserName" Then
    el.Value = "Логин"
    End If
    If el.Name = "UserPass" Then
    el.Value = "Пароль"
    End If
    If el.Type = "submit" Then
    el.Click
    End If
Next el
Do While IE.readyState <>  4 
DoEvents
Loop
Sleep  1000 
DoEvents

' Ищем пункт меню "счета" и кликаем по нему, что-бы посмотреть остатки
Set inpS = IE.document.getElementsByTagName("table")
's = IE.Document.body.innerHTML
For Each el In inpS
    Debug.Print el.innerHTML
    If el.innerText = "счета" Then
        el.Click
    End If
Next el

Do While IE.readyState <>  4 
DoEvents
Loop
Sleep  1000 
DoEvents

' Ищем счета и выбираем по ним информацию
Set inpS = IE.document.getElementsByTagName("table")
's = IE.Document.body.innerHTML
For Each el In inpS
'Находим нужную таблицу
    If InStr( 1 , el.innerText, "ДатаНомер счетаНаименование счетаВалютаВх. остатокДебетКредитИсх. остаток", 
vbTextCompare) Then
    '    Идем по ячейкам и собираем информацию
        i =  1 
        s = ""
        For Each cel In el.cells
            s = s & cel.innerText & vbTab
            i = i +  1 
            If i >  8  Then
                i =  1 
                s = s & vbCrLf
            End If
        Next cel
        Clipboard.Clear
        DoEvents
        Clipboard.SetText s
    End If
Next el

Me.Text1.Text = IE.document.body.innerHTML
Set el = Nothing
Set inpS = Nothing
IE.Quit
'IE.Visible = True
Set IE = Nothing
MsgBox "Все"
End Sub
' И в References - Microsoft HTML Object Library подключена :)))


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
"Кликнуть" по меню на Web-странице
    #36917879
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь Горбонос,


1Какая разница в этих строках в плане: lMilliseconds и dwMilliseconds???
Код: plaintext
1.
2.
Public Declare Sub Sleep Lib "kernel32" (ByVal lMilliseconds As Long)
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Интерисует эта конструкция

Код: plaintext
1.
2.
3.
4.
5.
Do While IE.readyState <>  4 
DoEvents
Loop
Sleep  1000 
DoEvents

зачем так????
в смысле после
Loop
Добавляете
Sleep 1000
DoEvents
зачем так и в одном месте Вы просто ограничились Sleep 1000 без DoEvents, когда добавляете DoEvents, а когда ограничиваетесь Sleep 1000 ????


Этот отрезок:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
If el.Name = "UserName" Then
    el.Value = "Логин"
    End If
    If el.Name = "UserPass" Then
    el.Value = "Пароль"
    End If
    If el.Type = "submit" Then
    el.Click
    End If
Наверное лучше так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
If el.Name = "UserName" Then
    el.Value = "Логин"
   ElseIf el.Name = "UserPass" Then
    el.Value = "Пароль"
    ElseIf el.Type = "submit" Then
    el.Click
    End If

Посмотреть всё конечно не смог потому, то есть решение вопроса, потому, что надо иметь реальный логин и пароль, и странно что нет проверки, если ввели неверно логин или пароль, то сообщение об этом и на выход, но всё же спасибо
...
Рейтинг: 0 / 0
"Кликнуть" по меню на Web-странице
    #36917948
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: Ципихович Эндрю
> 1Какая разница в этих строках в плане: lMilliseconds и dwMilliseconds???

Разницы никакой, это просто имя параметра.

> Интерисует эта конструкция
> зачем так????
> в смысле после
> Loop
> Добавляете
> Sleep 1000
> DoEvents
> зачем так и в одном месте Вы просто ограничились Sleep 1000 без DoEvents, когда добавляете DoEvents, а когда
> ограничиваетесь Sleep 1000 ????

Потому, что столкнулся с твоей проблемой :)
Страница уже загружена, но нужной информации ещё нет, т.к. не доработали локальные скрипт на странице(как я подозреваю).
Поэтому "усыпляю" себя, а DoEvents - это как в анекдоте: "А здесь, я ещё бурячки посею" :)

> Этот отрезок:
> Наверное лучше так:

Можно и так. Это дело привычки. Мне удобней/понятней так, можно написать как ты предложил.

> Посмотреть всё конечно не смог потому, то есть решение вопроса, потому, что надо иметь реальный логин и пароль, и
> странно что нет проверки, если ввели неверно логин или пароль, то сообщение об этом и на выход, но всё же спасибо

Да проверок нет, потому, что это заготовка для показа возможностей и будет кардинально переделыватся на формирование
запросов и их обработку и уход от Интернет Эксплорера. А для показа сойдет и так :)

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
"Кликнуть" по меню на Web-странице
    #36918538
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь Горбонос
> Автор: Ципихович Эндрю
> 1Какая разница в этих строках в плане: lMilliseconds и dwMilliseconds???

Разницы никакой, это просто имя параметра.

Так мне как лучше писать????


Потому, что столкнулся с твоей проблемой :)
Страница уже загружена, но нужной информации ещё нет, т.к. не доработали локальные скрипт на странице(как я подозреваю).

Ничего себе я год решаю, некоторые только усмехаются
я понимаю, что задержку ставишь чем больше тем лучше
но меня это не устраивает, потому что час это больше чем пол часа, а кому это надо, счёт идёт на миллисекунды!!
Но я завтра попробую, так написать, если это решение то ресрпект Вам!!!

уход от Интернет Эксплорера
И что за браузер???, при помощи ВБА??? Если да скининьте пжл скрипт
...
Рейтинг: 0 / 0
"Кликнуть" по меню на Web-странице
    #36922258
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: Ципихович Эндрю
> > Разницы никакой, это просто имя параметра.
> Так мне как лучше писать????

Как тебе удобно, потому что разницы никакой. Можешь его назвать как iii или
JFVdLEvZ8T без разницы, просто при объявлении функций, параметрам
стараются давать "говорящие" имена, что-бы по имени можно было догадатся какие данные передавать

> Ничего себе я год решаю, некоторые только усмехаются

Потому, что все что могли, тебе посоветовали, чего ты ещё хочешь??? :)

> но меня это не устраивает, потому что час это больше чем пол часа, а кому это надо, счёт идёт на миллисекунды!!

Это в любом случае быстрее чем делать это руками :)

> Но я завтра попробую, так написать, если это решение то ресрпект Вам!!!

Мне это нужно портировать на фокспро, там есть такая фишка как показ окна на определенное время, и это не MsgBox. Мне
кажется это будет отрабатывать лучше чем со Sleep. Тебе могу порекомендовать "нарисовать" автомат состояний и переписать
код согласно этому автомату. Автомат должен посылать запрос, потом при получении статуса IE.readyState = 4 делать не
Sleep, а взводить таймер на полсекунды(эксперементально подобрать) и дальнейшую обработку производить в обработчике
таймера, до следующего запроса.


> И что за браузер???, при помощи ВБА??? Если да скининьте пжл скрипт

Без браузера вообще, програмно формировать запросы, которые сейчас шлет браузер и их отсылать им получать ответ от
сервера. Нет, у меня профильный язык фокспро, на ВБА я прорабатываю "новые" технологии, т.к. тут отладчик лучше, да и
мне удобнее.

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
"Кликнуть" по меню на Web-странице
    #36922325
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь Горбонос,

ну что попробовал, респект Вам не удался!
Sleep 1000
DoEvents
не помогло

Вы говорите:
Тебе могу порекомендовать "нарисовать" автомат состояний и переписать
код согласно этому автомату. Автомат должен посылать запрос, потом при получении статуса IE.readyState = 4 делать не
Sleep, а взводить таймер на полсекунды(эксперементально подобрать) и дальнейшую обработку производить в обработчике таймера, до следующего запроса.

Расшифруйте пжл как для ЦЭ, из всего только знакомо автомат, не его же брать
"нарисовать" автомат состояний это как?
дальше двинемся
...
Рейтинг: 0 / 0
"Кликнуть" по меню на Web-странице
    #36922371
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Начни отсюда , а там будет видно :)

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
"Кликнуть" по меню на Web-странице
    #36922419
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ваш ответ понятен, его если на русский язык перевести, то звучит так:
Пока ты читаешь, а ты не прочитаешь его никогда, я отдыхаю
Я говорю же в работу писал, ответа нет, только господу богу осталось написать
Короче из песни:
Ты не думай о секундах с высока
Сколько же стоит эта секунда??
Кто нибудь поможет без занудства??
Вот блин днюха прошла, теперь поздно просить подаруночек
Ну что ли к Новому 2012 году просить!
...
Рейтинг: 0 / 0
"Кликнуть" по меню на Web-странице
    #36922535
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: Ципихович Эндрю
> Ваш ответ понятен, его если на русский язык перевести, то звучит так:
> Пока ты читаешь, а ты не прочитаешь его никогда, я отдыхаю

Нет.
Эндрю я самоучка, по профильному образованию инженер литейного производства. Програмирование осваивал сам. По поводу
автомата состояний мне повезло. На работе мне это объяснил старший товарищ. Но там много объяснять и нужно видеть
реакцию, что-бы понимать "понятно или нет". Этой возможности у меня нет, поэтому я говорю тебе - почитай сам.
Начни со статьи "Психология автоматного программирования", потом перейди к "Программирование информационно-управляющих
систем на основе конечных автоматов: учебное пособие", и прочитай задачу о стрелках.
Посмотри на выключатель, это класический пример конечного автомата на два состояния.

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
"Кликнуть" по меню на Web-странице
    #36923936
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь Горбонос, начал со статьи "Психология автоматного программирования", прочёл
Статья предназначается программистам, работающим в среде C/C++
Читал далее через силу. Мой мозг далее читал через силу.

Далее прочёл:
Когда-то я работал руководителем очень большой группы программистов и пытался внедрить "в массы" использование автоматов в программах различного назначения. Ничего не вышло. Только один - двое могли усвоить лишь некоторые мои программы, но самостоятельно решать подобные задачи не могли. Лишь теперь набран необходимый материал для широкого распространения метода автоматного программирования в задачах циклической природы различного назначения.

Ну разве я смогу войти в то количество один двое????????
Ну разве кроме меня никто с этим не сталкивался, чтобы читать статьи и изобретать велосипед
Готов, заплатить 500 р., это за отказ применять слип 1000, цена один к двум. Помогите кто нибудь!
...
Рейтинг: 0 / 0
"Кликнуть" по меню на Web-странице
    #36924060
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
самое страшное, я получаю ошибку в коде 91 и если указать в случае ошибки вернутся к месту А, то есть:
Код: plaintext
1.
2.
3.
4.
5.
6.
А:
Do While IE.readyState <>  4 
DoEvents
Loop
Sleep  1000 
DoEvents
тогда виснет, потому, что видимо не может выйти из цикла
Что делать????????
...
Рейтинг: 0 / 0
"Кликнуть" по меню на Web-странице
    #36924538
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ципихович ЭндрюНу разве кроме меня никто с этим не сталкивался, чтобы читать статьи и изобретать велосипед
Готов, заплатить 500 р., это за отказ применять слип 1000, цена один к двум. Помогите кто нибудь!
Подниму ставку 1000 р.=1000 мсек.
...
Рейтинг: 0 / 0
"Кликнуть" по меню на Web-странице
    #36924750
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ципихович ЭндрюЦипихович ЭндрюНу разве кроме меня никто с этим не сталкивался, чтобы читать статьи и изобретать велосипед
Готов, заплатить 500 р., это за отказ применять слип 1000, цена один к двум. Помогите кто нибудь!
Подниму ставку 1000 р.=1000 мсек.
А билет до Челябинска и трансфер в обе стороны?
это ж не работает только в твоей локалке, насколько я понимаю
...
Рейтинг: 0 / 0
"Кликнуть" по меню на Web-странице
    #36924779
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
ну тогда как говорится, будете в наших краях, заезжайте ..., а на горных лыжах покататься ...
Много жаждущих приезжает
А про то на моей локалке или нет не работает проверить трудно, я же не думал в ВТБ получить логин и пароль, по примеру Игоря чтобы проверить, да я так понял, что он проверял, работает
Я же говорю смысл в секундах, просто мои тараканы не разрешают ждать 3, 4 или 5 секунд
Потому что теряется вера в ВБА, что Игорь пишет: эксперементально подобрать
Бред, пусть скрипт работает, отрабатывает, что в него я вложил
...
Рейтинг: 0 / 0
"Кликнуть" по меню на Web-странице
    #36926926
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro
А билет до Челябинска и трансфер в обе стороны?
это ж не работает только в твоей локалке, насколько я понимаю

Так можно же если я не ошибаюсь по интернету сказать пароль своего компа и у Вы будете работать как на моём компе
Если я не ошибаюсь мне ещё надо бук принести для связи в процессе работы, отладки???
...
Рейтинг: 0 / 0
"Кликнуть" по меню на Web-странице
    #36927141
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ципихович ЭндрюЕсли я не ошибаюсь мне ещё надо бук принести для связи в процессе работы, отладки???
общаться можно по скайпу с того же компа
...
Рейтинг: 0 / 0
25 сообщений из 45, страница 1 из 2
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / "Кликнуть" по меню на Web-странице
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]