Управляющие элементы JavaScript и Qt
Здравствуйте!
Имеется десктопное приложение, написанное с использованием библиотеки Qt (C++), приложение работает под Windows. В него входит браузер (QWebView), позволяющий загружать страницы и исполнять код JavaScript, который они содержат. Можно ли средствами Qt получить доступ к элементам управления JavaScript? Конкретная задача в том, чтобы, после загрузки страницы веб-сервиса, автоматизировать навигацию и обработку данных, который выдает этот сервис, а также отправку данных назад. То есть, научить программу нажимать на JS-ссылки, вводить строчные данные в поля окон, создаваемых функциями JS (jQuery), нажимать на кнопки этих окон, и, главное, обнаруживать появление таких окон на экране. Я не специалист по JS, а также не очень хорошо представляю себе иерархию QWebKit, поэтому не знаю, появляются ли эти элементы в виде объектов страницы, или нет. Подскажите пожалуйста, как организовать взаимодействие с элементами JS веб-страницы из приложения. Возможно ли это в принципе? |
PP40, вопрос задан явно не на том форуме... На КюТи и спрашивай...
|
PP40, спроси у ТСа
http://javascript.ru/forum/dom-windo...jj-knopke.html Он решал аналогичную проблему и вроде как поборол ее! |
> вопрос задан явно не на том форуме... На КюТи и спрашивай...
На форуме Qt мне ответили, что проблема может быть решена методом внедрения и исполнения собственных ф-ций JS на странице. Но не конкретизировали алгоритм внедрения и обнаружения окна JS на экране. Т.к. речь идет все-таки об элементах управления JS, мне кажется, я по адресу, и на этом форуме должны найтись специалисты, понимающие проблему и желающие объяснить, как именно получить к доступ к элементам JS снаружи. > Программный клик на не стандартной кнопке > Он решал аналогичную проблему и вроде как поборол ее! Спасибо, почитаю. |
Цитата:
|
Цитата:
Вот смотри... Ты даешь нам пример хтмэля, рассказываешь, что хочешь с ним сделать... Мы показываем как можно это сделать на js, так? как будто бы этот код был уже на странице... Ты, имея это, сможешь аналогичное реализовать на своем компоненте? |
> Так если ты не умеешь пользоваться своим компонентом как тебе помочь?
Что я умею, а что не умею, к делу не относится. Вопрос в том, как представлены окна JS в иерархии браузера (к которым может получить доступ любая технология). Если я спрошу, например, как получить доступ к элементу списка, или к полю в таблице, вопросов о моей квалификации, вероятно, не возникнет? Мы говорим о вещах, которые очевидно представлены. Мне нужна информация об окнах, которые выкидывают функции javascript: эти окна, в момент их активности, где-то представлены, или нет? А их компоненты - кнопки для нажатия, поля для ввода - доступны только в ручном режиме? Если эти окна генерирует интерпретатор JS, он их где-то фиксирует, или они видны только на странице браузера и в недрах интерпретатора? |
Цитата:
Цитата:
JavaScript умеет манипулировать этими элементами ДОМ... :yes: |
> Все, что ты видишь на странице - это элементы ДОМ-модели... Некий хтмл, который вот так интерпретировал браузер и показал тебе... JavaScript умеет манипулировать этими элементами ДОМ...
Это как-то относится к теме и заданному в ней вопросу? Знаю, что такое DOM, и что при помощи JS можно манипулировать элементами. Доступ к иерархии DOM реализован и в Qt. Мне нужен доступ к результатам работы функции JS - к кнопкам, которые содержат диалоговые окна JS, к полям ввода, и к информации, появилось ли окно на экране. Хочу выяснить, где это все находится. Я достаточно хорошо разжевал вопрос, или надо еще раз вокруг клумбы?... ;) |
Цитата:
|
Часовой пояс GMT +3, время: 14:43. |