Что нового

Вопрос. Как не нажать на кнопку, а скопировать ссылку

Романыч

Новичок
Сообщения
35
Репутация
1
Вот писал, писал. Даже что-то получилось, нажать на кнопку
Код:
$oButtons = _IETagNameGetCollection($oIE2, 'div')
For $oButton In $oButtons
If $oButton.classname == 'universalButton_blue' Then
  _IEAction($oButton, 'click')
EndIf
Next

Пришла ко мне мысль, что на кнопку не надо нажимать, надо скопирывать её ссылку, и записать в переменую. Смотрел функции _IEAction, вроде как подобного не нашел :scratch: а может и не заметил :stars:
 

DarWiM

Продвинутый
Сообщения
527
Репутация
90
Ссылку кнопки? Впервые слышу о необходимости такой процедуры..
Код:
$oButtons = _IETagNameGetCollection($oIE2, 'div')
For $oButton In $oButtons
If $oButton.classname == 'universalButton_blue' Then
  $Var=$oButton.href
EndIf
Next
 
Автор
Р

Романыч

Новичок
Сообщения
35
Репутация
1
DarWim, да ты правильно понял. То что ты дал, запускается без ошибок но как доходит до $Var = $oButton.href
ошибки поползли ну и выкидывает из проги
Код:
$Var = $oButton.href
$Var = $oButton.href^ ERROR



Добавлено:
Сообщение автоматически объединено:

madmasles, вот код

Код:
<div class="universalButton_blue" style="width: 100px; ">  
   <p style="font-size: 13px; color: #FFFFFF; text-shadow: 0px 1px 2px #2a7398;">Выбрать</p>
</div>
Ребят помогите пожалуйста, а то уже голова едет :stars:
 

madmasles

Модератор
Глобальный модератор
Сообщения
7 790
Репутация
2 319
Романыч [?]
В этом куске ссылок нет, надо смотреть всю страницу или дайте ссылку.
А что происходит, если нажать эту кнопку?
 
Автор
Р

Романыч

Новичок
Сообщения
35
Репутация
1
а смысл давать ссылку на страницу. При нажатии на кнопку открывается новая вкладка. Ссылка постоянно меняется. Очень интересно, какой код рабочий. Идея DarWiM, очень понравилась, но увы не рабочая.
 

DarWiM

Продвинутый
Сообщения
527
Репутация
90
Романыч

madmasles [?]
В этом куске ссылок нет
Вот поэтому нужен полный код страницы.

Вы наверняка дали не ту часть кода или не верно определили нужный элемент

З.Ы. Это для ВК??
 
Автор
Р

Романыч

Новичок
Сообщения
35
Репутация
1
Нет я дал именно ту часть кода. потому что на кнопку нажимает у меня. полный код страницы... ребят я понимаю вы лучше меня сарите в auto it, но тут совершенно не нужен полный код.

з.ы. не для вк
 

DarWiM

Продвинутый
Сообщения
527
Репутация
90
Романыч
Пойми, именно этот кусок НЕ ИМЕЕТ ССЫЛКИ.
Значит при нажатии (если это всё-таки именно то) запускается какая-то функция, ИМХО

Ставлю вопрос ребром. Не будет кода - не будет помощи..
 
Автор
Р

Романыч

Новичок
Сообщения
35
Репутация
1
Не будет кода - не будет помощи..
:'( :'( :'( :'( :'(
Да действительно, смотрел исх код элемента, шас посмотрел всей странице и нашел вот:
Код:
	 	 <a href="/goto-id5453.php" style="text-decoration:none;" target="_blank" onclick="slideUpDiv_183221();">
	 	 <div class="universalButton_blue" style="width: 100px; ">  
	 		  <p style="font-size: 13px; color: #FFFFFF; text-shadow: 0px 1px 2px #2a7398;">Выбрать</p>
	 	 </div>


Добавлено:
Сообщение автоматически объединено:

DarWim этого вполне достаточно. Имхо, просто не хочешь помочь :(
 

DarWiM

Продвинутый
Сообщения
527
Репутация
90
Романыч
Там нет ссылок. При нажатии на "кнопку" вызывается функция, которая перенаправляет на другую страницу и следит за вашими действиями

Вру. Ссылки есть. Но без запуска функции переходить туда смысла нет
 
Автор
Р

Романыч

Новичок
Сообщения
35
Репутация
1
тогда очевидно. что они открываются в новой вкладке. просто может их переадресовать в свою вкладку спец и все
 

DarWiM

Продвинутый
Сообщения
527
Репутация
90
Романыч
просто может их переадресовать в свою вкладку спец и все
Код:
#include <IE.au3>
$oIE=_IECreate('site')
$sHTML=_IEDocReadHTML($oIE)
$sHTML=StringReplace($sHTML,'target="_blank"','target="_self"')
_IEDocWriteHTML($oIE,$sHTML)

не проверял

P.S. довольно грубый способ, лучше изменять для конкретной ссылки
 
Автор
Р

Романыч

Новичок
Сообщения
35
Репутация
1
твой кусок кода не работает коректно. загружает эту же стр но не доконца причем
 

DarWiM

Продвинутый
Сообщения
527
Репутация
90
DarWiM [?]
И это значит, что я не проверял.
Говорю же, лучше найдя объект самой ссылки изменить только её target

Видимо мне некуда деть время..
Код:
#include <IE.au3>
$oIE=_IECreate()
...
$oDivs=_IETagNameGetCollection($oIE,'div')
For $oDiv In $oDivs
	If $oDiv.id="friendsBox" Then
		$oLinks=_IELinkGetCollection($oDiv)
		For $oLink In $oLinks
			$oLink.target='_self'
			$oLink.click
			ExitLoop
		Next
	EndIf
Next

Не проверял
 
Автор
Р

Романыч

Новичок
Сообщения
35
Репутация
1
Не работает. Ошибку не пишет, когда цикл выполняется выкидывает на страницу после авторизации которая, не правильно цикл работает.
я проверил...
 

DarWiM

Продвинутый
Сообщения
527
Репутация
90
Романыч
Зачем плодить темы???

Проверил, работает
Код:
#include <IE.au3>
$oIE=_IEAttach('Olike')
_IELoadWait($oIE)
$oDivs=_IETagNameGetCollection($oIE,'div')
For $oDiv In $oDivs
	If $oDiv.id=="friendsBox" Then
		$oLinks=_IELinkGetCollection($oDiv)
		For $oLink In $oLinks
			If StringInStr($oLink.href,'vk.com') Then
				ConsoleWrite('href='&$oLink.href&@LF&'target_old='&$oLink.target&@LF)
				$oLink.target='_self'
				ConsoleWrite('target_new='&$oLink.target&@LF)
				ExitLoop
			EndIf
		Next
		$oPs=_IETagNameGetCollection($oDiv,'p')
		For $oP In $oPs
			If $oP.innertext='Подписаться' Then
				_IEAction($oP,'click')
				ExitLoop(2)
			EndIf
		Next
	EndIf
Next
 
Автор
Р

Романыч

Новичок
Сообщения
35
Репутация
1
DarWim, спасибо тебе огромное, действително работает. :ok: Оставь в ЛС свой wmr или яндекс, когда деньги будут, "рубль" упадёт на твой кошелёк.

Назрел ещё один вопрос. :rambo: Как быть, если я хочу чтоб не открывалось в этой вкладке, а в другой. например, тот же второй браузер в другой вкладке. $oIE2
 

DarWiM

Продвинутый
Сообщения
527
Репутация
90
Романыч
Вот тут уже наверное совсем в скрытном не выйдет... Ну а вообще, вместо _blank или _self подставляешь название будущего окна (можно для названия использовать найденный href)
Наверное нужно будет сразу же его отлавливать и скрывать..
 

madmasles

Модератор
Глобальный модератор
Сообщения
7 790
Репутация
2 319
Романыч [?]
Назрел ещё один вопрос.
Предупреждение За нарушение общих правил (пункт В.4):
Не лепите несколько вопросов разной тематики в один пост. По типу "Ребят, а ещё такой вопрос...". Каждый вопрос в свою тему.


С уважением, ваш Модератор.
 
Верх