09.02.2015, 14:16
|
Новичок на форуме
|
|
Регистрация: 09.02.2015
Сообщений: 5
|
|
Управляющие элементы JavaScript и Qt
Здравствуйте!
Имеется десктопное приложение, написанное с использованием библиотеки Qt (C++), приложение работает под Windows. В него входит браузер (QWebView), позволяющий загружать страницы и исполнять код JavaScript, который они содержат. Можно ли средствами Qt получить доступ к элементам управления JavaScript?
Конкретная задача в том, чтобы, после загрузки страницы веб-сервиса, автоматизировать навигацию и обработку данных, который выдает этот сервис, а также отправку данных назад. То есть, научить программу нажимать на JS-ссылки, вводить строчные данные в поля окон, создаваемых функциями JS (jQuery), нажимать на кнопки этих окон, и, главное, обнаруживать появление таких окон на экране.
Я не специалист по JS, а также не очень хорошо представляю себе иерархию QWebKit, поэтому не знаю, появляются ли эти элементы в виде объектов страницы, или нет.
Подскажите пожалуйста, как организовать взаимодействие с элементами JS веб-страницы из приложения. Возможно ли это в принципе?
|
|
09.02.2015, 14:26
|
|
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,225
|
|
PP40, вопрос задан явно не на том форуме... На КюТи и спрашивай...
Последний раз редактировалось ksa, 09.02.2015 в 14:30.
|
|
09.02.2015, 14:37
|
Новичок на форуме
|
|
Регистрация: 09.02.2015
Сообщений: 5
|
|
> вопрос задан явно не на том форуме... На КюТи и спрашивай...
На форуме Qt мне ответили, что проблема может быть решена методом внедрения и исполнения собственных ф-ций JS на странице. Но не конкретизировали алгоритм внедрения и обнаружения окна JS на экране.
Т.к. речь идет все-таки об элементах управления JS, мне кажется, я по адресу, и на этом форуме должны найтись специалисты, понимающие проблему и желающие объяснить, как именно получить к доступ к элементам JS снаружи.
> Программный клик на не стандартной кнопке
> Он решал аналогичную проблему и вроде как поборол ее!
Спасибо, почитаю.
Последний раз редактировалось PP40, 09.02.2015 в 14:39.
|
|
09.02.2015, 15:05
|
|
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,225
|
|
Сообщение от PP40
|
как именно получить к доступ к элементам JS снаружи
|
Так если ты не умеешь пользоваться своим компонентом как тебе помочь?
|
|
09.02.2015, 15:09
|
|
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,225
|
|
Сообщение от PP40
|
не очень хорошо представляю себе иерархию QWebKit
|
Без понимания принципа работы этого компонента х/з как тебе помочь...
Вот смотри...
Ты даешь нам пример хтмэля, рассказываешь, что хочешь с ним сделать... Мы показываем как можно это сделать на js, так? как будто бы этот код был уже на странице...
Ты, имея это, сможешь аналогичное реализовать на своем компоненте?
|
|
09.02.2015, 15:17
|
Новичок на форуме
|
|
Регистрация: 09.02.2015
Сообщений: 5
|
|
> Так если ты не умеешь пользоваться своим компонентом как тебе помочь?
Что я умею, а что не умею, к делу не относится.
Вопрос в том, как представлены окна JS в иерархии браузера (к которым может получить доступ любая технология). Если я спрошу, например, как получить доступ к элементу списка, или к полю в таблице, вопросов о моей квалификации, вероятно, не возникнет? Мы говорим о вещах, которые очевидно представлены.
Мне нужна информация об окнах, которые выкидывают функции javascript: эти окна, в момент их активности, где-то представлены, или нет? А их компоненты - кнопки для нажатия, поля для ввода - доступны только в ручном режиме? Если эти окна генерирует интерпретатор JS, он их где-то фиксирует, или они видны только на странице браузера и в недрах интерпретатора?
|
|
09.02.2015, 15:39
|
|
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,225
|
|
Сообщение от PP40
|
Что я умею, а что не умею, к делу не относится.
|
Тебе видней...
Сообщение от PP40
|
Мне нужна информация об окнах, которые выкидывают функции javascript: эти окна, в момент их активности, где-то представлены, или нет? А их компоненты - кнопки для нажатия, поля для ввода - доступны только в ручном режиме? Если эти окна генерирует интерпретатор JS, он их где-то фиксирует, или они видны только на странице браузера и в недрах интерпретатора?
|
Все, что ты видишь на странице - это элементы ДОМ-модели... Некий хтмл, который вот так интерпретировал браузер и показал тебе...
JavaScript умеет манипулировать этими элементами ДОМ...
|
|
09.02.2015, 16:20
|
Новичок на форуме
|
|
Регистрация: 09.02.2015
Сообщений: 5
|
|
> Все, что ты видишь на странице - это элементы ДОМ-модели... Некий хтмл, который вот так интерпретировал браузер и показал тебе... JavaScript умеет манипулировать этими элементами ДОМ...
Это как-то относится к теме и заданному в ней вопросу? Знаю, что такое DOM, и что при помощи JS можно манипулировать элементами. Доступ к иерархии DOM реализован и в Qt. Мне нужен доступ к результатам работы функции JS - к кнопкам, которые содержат диалоговые окна JS, к полям ввода, и к информации, появилось ли окно на экране. Хочу выяснить, где это все находится. Я достаточно хорошо разжевал вопрос, или надо еще раз вокруг клумбы?...
|
|
09.02.2015, 16:23
|
|
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,225
|
|
Сообщение от PP40
|
Знаю, что такое DOM, и что при помощи JS можно манипулировать элементами.
...
Я достаточно хорошо разжевал вопрос, или надо еще раз вокруг клумбы?
|
Значит пора тебе решить свою проблему самостоятельно...
|
|
|
|