Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Управляющие элементы JavaScript и Qt (https://javascript.ru/forum/dom-window/53568-upravlyayushhie-ehlementy-javascript-i-qt.html)

PP40 09.02.2015 14:16

Управляющие элементы JavaScript и Qt
 
Здравствуйте!
Имеется десктопное приложение, написанное с использованием библиотеки Qt (C++), приложение работает под Windows. В него входит браузер (QWebView), позволяющий загружать страницы и исполнять код JavaScript, который они содержат. Можно ли средствами Qt получить доступ к элементам управления JavaScript?
Конкретная задача в том, чтобы, после загрузки страницы веб-сервиса, автоматизировать навигацию и обработку данных, который выдает этот сервис, а также отправку данных назад. То есть, научить программу нажимать на JS-ссылки, вводить строчные данные в поля окон, создаваемых функциями JS (jQuery), нажимать на кнопки этих окон, и, главное, обнаруживать появление таких окон на экране.
Я не специалист по JS, а также не очень хорошо представляю себе иерархию QWebKit, поэтому не знаю, появляются ли эти элементы в виде объектов страницы, или нет.
Подскажите пожалуйста, как организовать взаимодействие с элементами JS веб-страницы из приложения. Возможно ли это в принципе?

ksa 09.02.2015 14:26

PP40, вопрос задан явно не на том форуме... На КюТи и спрашивай...

ksa 09.02.2015 14:32

PP40, спроси у ТСа
http://javascript.ru/forum/dom-windo...jj-knopke.html

Он решал аналогичную проблему и вроде как поборол ее!

PP40 09.02.2015 14:37

> вопрос задан явно не на том форуме... На КюТи и спрашивай...

На форуме Qt мне ответили, что проблема может быть решена методом внедрения и исполнения собственных ф-ций JS на странице. Но не конкретизировали алгоритм внедрения и обнаружения окна JS на экране.

Т.к. речь идет все-таки об элементах управления JS, мне кажется, я по адресу, и на этом форуме должны найтись специалисты, понимающие проблему и желающие объяснить, как именно получить к доступ к элементам JS снаружи.

> Программный клик на не стандартной кнопке
> Он решал аналогичную проблему и вроде как поборол ее!

Спасибо, почитаю.

ksa 09.02.2015 15:05

Цитата:

Сообщение от PP40
как именно получить к доступ к элементам JS снаружи

Так если ты не умеешь пользоваться своим компонентом как тебе помочь?

ksa 09.02.2015 15:09

Цитата:

Сообщение от PP40
не очень хорошо представляю себе иерархию QWebKit

Без понимания принципа работы этого компонента х/з как тебе помочь...

Вот смотри...
Ты даешь нам пример хтмэля, рассказываешь, что хочешь с ним сделать... Мы показываем как можно это сделать на js, так? как будто бы этот код был уже на странице...

Ты, имея это, сможешь аналогичное реализовать на своем компоненте?

PP40 09.02.2015 15:17

> Так если ты не умеешь пользоваться своим компонентом как тебе помочь?

Что я умею, а что не умею, к делу не относится.
Вопрос в том, как представлены окна JS в иерархии браузера (к которым может получить доступ любая технология). Если я спрошу, например, как получить доступ к элементу списка, или к полю в таблице, вопросов о моей квалификации, вероятно, не возникнет? Мы говорим о вещах, которые очевидно представлены.
Мне нужна информация об окнах, которые выкидывают функции javascript: эти окна, в момент их активности, где-то представлены, или нет? А их компоненты - кнопки для нажатия, поля для ввода - доступны только в ручном режиме? Если эти окна генерирует интерпретатор JS, он их где-то фиксирует, или они видны только на странице браузера и в недрах интерпретатора?

ksa 09.02.2015 15:39

Цитата:

Сообщение от PP40
Что я умею, а что не умею, к делу не относится.

Тебе видней... :D
Цитата:

Сообщение от PP40
Мне нужна информация об окнах, которые выкидывают функции javascript: эти окна, в момент их активности, где-то представлены, или нет? А их компоненты - кнопки для нажатия, поля для ввода - доступны только в ручном режиме? Если эти окна генерирует интерпретатор JS, он их где-то фиксирует, или они видны только на странице браузера и в недрах интерпретатора?

Все, что ты видишь на странице - это элементы ДОМ-модели... Некий хтмл, который вот так интерпретировал браузер и показал тебе...

JavaScript умеет манипулировать этими элементами ДОМ... :yes:

PP40 09.02.2015 16:20

> Все, что ты видишь на странице - это элементы ДОМ-модели... Некий хтмл, который вот так интерпретировал браузер и показал тебе... JavaScript умеет манипулировать этими элементами ДОМ...

Это как-то относится к теме и заданному в ней вопросу? Знаю, что такое DOM, и что при помощи JS можно манипулировать элементами. Доступ к иерархии DOM реализован и в Qt. Мне нужен доступ к результатам работы функции JS - к кнопкам, которые содержат диалоговые окна JS, к полям ввода, и к информации, появилось ли окно на экране. Хочу выяснить, где это все находится. Я достаточно хорошо разжевал вопрос, или надо еще раз вокруг клумбы?... ;)

ksa 09.02.2015 16:23

Цитата:

Сообщение от PP40
Знаю, что такое DOM, и что при помощи JS можно манипулировать элементами.
...
Я достаточно хорошо разжевал вопрос, или надо еще раз вокруг клумбы?

Значит пора тебе решить свою проблему самостоятельно...


Часовой пояс GMT +3, время: 14:43.