 
			
				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,298
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 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,298
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от PP40
			
		
	 | 
 
	| 
		как именно получить к доступ к элементам JS снаружи
	 | 
 
	
 
 Так если ты не умеешь пользоваться своим компонентом как тебе помочь?  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				09.02.2015, 15:09
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 CacheVar 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 19.08.2010 
					
					
					
						Сообщений: 14,298
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от 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,298
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от 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,298
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от PP40
			
		
	 | 
 
	
		Знаю, что такое DOM, и что при помощи JS можно манипулировать элементами. 
... 
Я достаточно хорошо разжевал вопрос, или надо еще раз вокруг клумбы?
	 | 
 
	
 
 Значит пора тебе решить свою проблему самостоятельно...  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
 
 |  
  |