Что нового

Нажатие на ссылку в браузере

twilight1983

Новичок
Сообщения
6
Репутация
0
Версия AutoIt: 3.8

Описание:
Доброе время суток есть игрушка Пути истории
http://w12.wofh.ru/

На одной из страницы нужно реализовать нажатие по элементу или ссылки JavaScript

Выбрать всю армию и потом нажать отозвать.

Вижу Два варианта
Либо мышкой как я и реализовал, но координаты заданы относительно окна, а мышка тыкает относительно Windows.
Либо как то тыкать по самому Ява коду.

код страницы

Код:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
	<head>
		<title>Пути Истории - Twiling</title>
		<meta name="Pragma" content="no-cache">
		<meta name="Cache-Control" content="no-cache">
		<link rel="stylesheet" href="/css/main_rp59.css" type="text/css">
		<link rel="stylesheet" href="/css/main_col.pack_rp59.css" type="text/css">
		<link rel="stylesheet" href="/css/e/layer0.pack.css" type="text/css">
		<link rel="stylesheet" href="/css/peoples.css?v=1" type="text/css">
		<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js"></script>
		<script type="text/javascript" src="/js/jquery-ui-1.8.16.custom.min.js"></script>
		<script type="text/javascript" src="/js/jquery.cookie.js"></script>
		<script type="text/javascript" src="/js/wofh.pack_rp61.js?v=6"></script>
		<script type="text/javascript" src="/js/wofh_lamo_rp61.js?v=5"></script>
		<script type="text/javascript" src="/js/JSONreq_rp61.js?v=1"></script>
		<script type="text/javascript" src="/js/main_rp61.js"></script>
		<script type="text/javascript">
			WH.LGmode = 0;
			var moverTypeId = [3,3,3,4,4,4,5,5,5]
			$(function(){wofh.init();})
			
		</script>
	</head>
	<body>
		<div id='popupok'><div>Подтвердить действие?</div><div id="p_yes"><div class="opcl"></div>Да</div><div id="p_no" onclick="$('#popupok').css('display','none')"><div class="opcl"></div>Нет</div></div>
		
		<div id='opaco' class='dnone'></div><div id='popup' class='dnone'><div class='p_top'></div><div id='p_text'></div><div class='p_bot'></div></div>
		<div id="box">
			<div id="m1">
				<div id="timer"><span id='time1'>16:35:30</span></div>
				<div id="lmb"></div>
				<a class="bonus" href="bonus">Удача</a><div class="rib"></div>
				<div class="lib"></div><a href='announce'>Объявления</a><div class="rib"></div>
				<div class="lib"></div><a href='simbattle'>Симулятор боя</a><div class="rib"></div>
				<div class="lib"></div><a href='help'>Энциклопедия</a><div class="rib"></div>
				<div class="lib"></div><a href='options'>Настройки</a><div class="rib"></div>
				<div class="lib"></div><a href='http://forum.wofh.ru/forum.php'>Форум</a><div class="rib"></div>
				<div class="lib"></div><a href='chat'>Чат</a><div class="rib"></div>
				<div class="lib"></div><a href='logout'>Выход</a>
				
				<div id="rmb"></div>
			</div>
			<div class="m2">
				<div style="width:27px;height:35px;background:url(/p/e1/mmenu2_s.png) no-repeat;background-position:-10px 0px"><a id="m2_towns" href='towns' title='Информация по всем городам'></a></div>
				<div><a id="m2_town" href='town' title='Город'></a></div>
				<div><a id="m2_map" href='map' title='Карта'></a></div>
				<div><a id="m2_rep0" href='report' title='Отчёты'></a></div>
				<div><a id="m2_mes0" href='message' title='Сообщения'></a></div>
				<div><a id="m2_st" href='rate' title='Рейтинги'></a></div>
				<div><a id="m2_ct" href='country' title='Страна'></a></div>
				
				<div><a id="m2_sc" href='science' title='Наука'></a></div>
				<div id="sc_l"></div>
				<span id="sc_b"><a href="scienceinfo?id=-1"><a class='science_main' style="background:none; color:#fff">Объединение</a></a> 563/4219 (13%)</span>
				<div id="sc_r"></div>
			</div>
			<div id="box2">
				<div id="box4">
	<div class="sep_ sep_p1 h100">
		<div class="talem_h_ talem_h_p1 h100">
			<!-- left column -->
			<div id="box5">
				<div class="balka1_ balka1_p1">
					<div class="bord_l_ bord_l_p1">
						<div class="spirel_ spirel_p1">
							<div class="talel_ talel_p1">
								<div id="cont03">
									
									<div class="h100">
										<div class="balka2_ balka2_p1">
											<div id="cont04">
												<!-- content -->
												<div class='pagetitle'><div>Отзыв подкрепления</div></div>
<div class='pagecont'>
	<p>Отозвать подкрепление из города 1.Хитропоповка [V]</p>
	<form action='dowithdraw' method='post'>
		<table id='armyetable'>
<tr><td><a href='unitinfo?id=0'><img class='unit u0' src='/p/_.gif'></a> <input type='text' name='u0' value="" /> <a href='javascript:;'>9</a></td></tr><tr><td><a href='unitinfo?id=12'><img class='unit u12' src='/p/_.gif'></a> <input type='text' name='u12' value="" /> <a href='javascript:;'>7</a></td></tr><tr><td><a href='unitinfo?id=8'><img class='unit u8' src='/p/_.gif'></a> <input type='text' name='u8' value="" /> <a href='javascript:;'>9</a></td></tr>
</table>
<p><a class='nojs' id='armyeall' href='javascript:;' >Выбрать всю армию</a></p>
<script type="text/javascript">document.getElementById('armyeall').style.display='block';$(function(){var a=$("#armyetable input"),c=a.length;a.next().click(function(){$(this).prev().val($(this).html())});$("#armyeall").click(function(){for(var b=0;b<c;b++)a.eq(b).val(a.eq(b).next().html())})});</script>
		<input type='hidden' name='from' value='9555'>
		<input type='hidden' name='home' value='9732'>
		<p><input type='submit' value='Отозвать'></p>
	</form>
</div>
												<!--  end content -->
											</div>
										</div>
									</div>
								</div>
							</div>
						</div>
					</div>
				</div>
				<div id="hintsbot">Тебе негде строить новые равнинные здания. Ты можешь разрушить малоэффективные строения (такие, как тайник, хижина или дом), чтобы на их месте построить другие.</div>
			</div>
			<!-- right column -->
			<div id="box6" class="excnt">
				<div class="balka1_">
					<div class="spirer_ spirer_p1">
						<div class="talem2_ talem2_p1">
							<div id="cont05">
								<div class="h100">
									<div class="balka2_ balka2_p1">
										<div class="bord_r_ bord_r_p2 pR">
											<div class="spirel_ spirel_p2 pA"></div>
											<div class="spirer_ spirer_p2 pA"></div>
											<div id="cont06">
												<div class="exbg_ exbg_p1">
													<div class="h100">
														<div class="exbot_ exbot_p1">
															<!-- content -->
															<script type="text/javascript">
																var list_towns = [[1,9732,"Twill [V]"]],
																town_action = "withdraw?from=9555";
															</script>
															<div id="chtbg">
																<noscript>
																<form action="withdraw?from=9555" method='post' name='chtown'>
																	<select id="ch_town01" class='exnamesel pA' name='tid'><option selected value='9732'>Twill [V]</option></select>
																	<input id="ch_town_sub" class='pA crP' type='submit' value='>'>
																	<a id="ch_town_link" href='townrename' class='pA'></a>
																</form>
																</noscript>
																<form id="ch_townf" action="town" method="post" class="dN">
																	<div id="iteml0" class="crP"></div>
																	<div id="butt_hide0" class="pA crP"></div>
																	<div id="cont_select0" class="pA">
																		<div id="town_select">
																			<div class="item_end0"></div>
																		</div>
																	</div>
																	<input chk="20,,t" id="town_name0" class="pA dN aC" type="text" name="name" value="">
																	<input id="hide_inpt" type="hidden" value="" name="tid">
																	<div id='pb_edit' info="Переименовать город" class="pA qinfo"></div>
																	<div id="butt_submit0" class="pA crP dN qinfo" info="Подтвердить переименование"></div>
																</form>
																<div class="pA" style="width: 285px; height: 14px; bottom: 2px; left: 5px;">
																	<a href='economics'>Экономика города</a>    <a href="trade?buy">Торговля (0/2)</a></a>
																</div>
															</div>
															<div class='extop'></div>
															<div class="chcol1 chcol_p1">
																<ul id='myres'>
																	<li><div class="fL"><img class='res r0' src='/p/_.gif' title='Знания'><i>19</i> <i>+11</i><span class="lbtm"> в час</span></i2><i class='dnone'>0=-0=5429=1</i></div> <div class='scienceup'><a href='scienceup'><img class='science sr' src='/p/_.gif' title='Передать 19 знаний без потерь (18) за 2 монеты удачи.'></a> 9%</div><div class='cB'></div></li>
																	
																	<li>
<center><b><a title="Объем хранилища указан для каждого вида ресурсов этого города" style="display:inline;cursor:help;color:#000">Вместимость хранилища: <span id="storemax">676</span></a></b></center>
</li>
																	<li><img class='res r2' src='/p/_.gif' title='Пища'><i>34</i><span class='dnone'>s</span> <i>+67</i><span class="lbtm"> в час</span><i class='dnone'>2=-32=5874=2 </i></li><div class='resscale' style="background-position: -0px -95px"></div><img class='resforecast' src="/p/_.gif" style="background-position: 202px 0px"><li><img class='res r3' src='/p/_.gif' title='Древесина'><i>246</i><span class='dnone'>s</span> <i>+45</i><span class="lbtm"> в час</span><i class='dnone'>3=-32=6526=3 </i></li><div class='resscale' style="background-position: -0px -64px"></div><img class='resforecast' src="/p/_.gif" style="background-position: 202px 0px"><li><img class='res r4' src='/p/_.gif' title='Металл'>40<span class='dnone'>s</span></li><div class='resscale' style="background-position: -0px -95px"> </div><li> </li><li><img class='res r6' src='/p/_.gif' title='Гранит'>14<span class='dnone'>s</span></li><div class='resscale' style="background-position: -0px -98px"> </div><li><img class='res r7' src='/p/_.gif' title='Вьючные животные'>25<span class='dnone'>s</span></li><div class='resscale' style="background-position: -0px -97px"> </div><li> </li><li><img class='res r11' src='/p/_.gif' title='Фрукты'>210<span class='dnone'>s</span></li><div class='resscale' style="background-position: -0px -69px"> </div>
																</ul>
																
															</div>
															<div class="chcol2 chcol_p1">
																<div class="aC"><img class='res rp' src='/p/_.gif'><nobr>Население - <span class='clr2'><span id="idpop">112</span>/<span id="idpopmax">122</span></span></nobr> <nobr>(<span id="idpopup">+12.9</span> в день)</nobr></div>
																<form class='exbtn' action='townbars' method='post'>
																	<input type='hidden' name='link' value="withdraw?from=9555">
																	<script type="text/javascript">$(function(){WH.slidersn({"id":"mt_slds","step": 1,"min": 20,"max": 60, "inputs":["sp0","sp1","sp2"]});$('#sld1 .ui-slider-handle').attr({'title':'Мудрецы'});$('#sld2 .ui-slider-handle').attr({'title':'Фермеры'});$('#sld3 .ui-slider-handle').attr({'title':'Рабочие'})});</script><table id="mt_slds" cellpadding="0" cellspacing="0" style="margin-left:17px"><tr><td class="aL">Мудрецы</td><td class="slbg1"><div class="sld1"></div></td><td><input type="text" name='bar1' value="20" id="sp0" />%</td></tr><tr><td class="aL">Фермеры</td><td class="slbg1"><div class="sld2"></div></td><td><input type="text" name='bar2' value="60" id="sp1" />%</td></tr><tr><td class="aL">Рабочие</td><td class="slbg1"><div class="sld3"></div></td><td><input type="text" name='bar3' value="20" id="sp2">%</td></tr></table>
																	<input class='btns mynsetbtn' type='submit' value=''>
																</form>
															</div>
															<div class="chcol1 chcol_p1">
																

<div id='constr_no_b'>Ничего не строится</div>


															</div>
															<div class="chcol_p2">
																
																<ul class='myunits'></ul><table class='exbtnt'><tr><td><form class='exbtn' action='army' method='post'><a href='army' style='display:block;' class='btns myarmybtn'></a></form></td></tr></table>
															</div>
															<!-- end content -->
														</div>
													</div>
												</div>
											</div>
										</div>
									</div>
								</div>
							</div>
						</div>
					</div>
				</div>
			</div>
			<div class="cB"></div>
		</div>
	</div>
</div>
			</div>
			<div class='copyri'>
				<a href='help?rules'>Правила</a>  
				<a href='help?legal'>Соглашение</a>  
				<a href='mailto:[email protected]'>Написать нам</a>
				

				&copy; Glyph worlds, 2008&#150;2012 гг. Все права защищены
				
<a href='help?changelog'>v. 1.2.24</a>
				

<span style="color:#fff">0 ms</span>
			</div>
		</div>
		</body>
</html>129031329395730

Код что я смог написать

Код:
#include <GUIConstants.au3>
#include <IE.au3>

GUICreate("Оповещение атаки", 1024, 800)
$oIE = _IECreateEmbedded() 
GUICtrlCreateObj($oIE,10,10,1000,768) 

GUISetState (@SW_SHOW)
_IENavigate($oIE,"http://w12.wofh.ru/town") 

$HTML=_IEBodyReadHTML($oIE)
$r=StringRegExp($HTML,'(?sim)Население',0)
if $r == 1 then
MsgBox(0,'Найдено',$r)
_IENavigate($oIE,"http://w12.wofh.ru/army")
Sleep (8000)
   $HTML_withdraw=_IEBodyReadHTML($oIE)
	  $withdraw=StringRegExp($HTML_withdraw,'(?sim)withdraw',0)
		 if $withdraw == 1 Then
			MsgBox(0,'Найдено Ваше подкрепление', $withdraw)
			_IENavigate($oIE,"http://w12.wofh.ru/withdraw?from=9555")
			Sleep (8000)
			MouseClick("left",  356,  334, 3)
			Sleep (3000)
			MouseClick("right", 355,  365, 5)
			Sleep (3000)
		 Elseif $withdraw == 0 Then
		 MsgBox(0,'Не найдено подкрепления', $withdraw)
			_IENavigate($oIE,"http://w12.wofh.ru/army")
		 EndIf
ElseIf $r == 0 Then
    MsgBox(4096, "Ненайдено", $r)
EndIf



Примечания:
 
Автор
T

twilight1983

Новичок
Сообщения
6
Репутация
0
Вроде нашел ответ =)
Код:
_IELinkClickByText ($oIE, "Выбрать всю армию")

Sleep (2000)
А вот с кнопкой отозвать чего то не работает
Код:
_IELinkClickByText ($oIE, "Отозвать")


Пошел искать клик по кнопке.


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

Код:
												<div class='pagetitle'><div>Отзыв подкрепления</div></div>
<div class='pagecont'>
	<p>Отозвать подкрепление из города 1.Хитропоповка [V]</p>
	<form action='dowithdraw' method='post'>
		<table id='armyetable'>
<tr><td><a href='unitinfo?id=0'><img class='unit u0' src='/p/_.gif'></a> <input type='text' name='u0' value="" /> <a href='javascript:;'>9</a></td></tr><tr><td><a href='unitinfo?id=12'><img class='unit u12' src='/p/_.gif'></a> <input type='text' name='u12' value="" /> <a href='javascript:;'>7</a></td></tr><tr><td><a href='unitinfo?id=8'><img class='unit u8' src='/p/_.gif'></a> <input type='text' name='u8' value="" /> <a href='javascript:;'>9</a></td></tr>
</table>
<p><a class='nojs' id='armyeall' href='javascript:;' >Выбрать всю армию</a></p>
<script type="text/javascript">document.getElementById('armyeall').style.display='block';$(function(){var a=$("#armyetable input"),c=a.length;a.next().click(function(){$(this).prev().val($(this).html())});$("#armyeall").click(function(){for(var b=0;b<c;b++)a.eq(b).val(a.eq(b).next().html())})});</script>
		<input type='hidden' name='from' value='9555'>
		<input type='hidden' name='home' value='9732'>
		[b]<p><input type='submit' value='Отозвать'></p>[/b]
Кнопка отозвать не имеет не ID не Имени и я её не могу нажать
_IEGetObjByName
_IEGetObjByID

прошу совета
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Предупреждение За нарушение правил форума (пункт В.11):
Любые отрывки AutoIt кода необходимо заключать в тег [autoit]
autoit.gif
(подробнее), а обычный код соответственно в тег [code]
code.gif
(подробнее). Также большие выдержки текста помещайте под тег [spoiler]
spoiler.gif
(подробнее), там где это поддерживается естественно. Как в случае с названием темы, также короткое и эргономичное сообщение привлекает больше внимания, и шансы на получение конкретного ответа увеличиваются.


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

twilight1983

Новичок
Сообщения
6
Репутация
0
Попробовал так тоже не работает =(
Код:
Local $oInput = _IETagNameGetCollection($oIE, 'input')

			   For $oInput in $oInput
			   If StringInStr(_IEPropertyGet($oInput, 'innertext'), 'Отозвать') Then
			   _IEAction($oInput, 'click')
			   ExitLoop
			   EndIf
			Next
 

Nik_rus

Python The Snake.
Сообщения
214
Репутация
62
Ошибочка у вас небольшая...
Код:
Local $oInputs = _IETagNameGetCollection($oIE, 'input')
For $oInput in $oInputs
    If StringInStr(_IEPropertyGet($oInput, 'innertext'), 'Отозвать') Then
        _IEAction($oInput, 'click')
        ExitLoop
    EndIf
Next
 
Автор
T

twilight1983

Новичок
Сообщения
6
Репутация
0
Вот весь код. Кнопка Отозвать так и не работает =(
Заметил что при наведение на кнопку мышкой в IE в статусе в нижнем левом углу браузера показывает

w12.wofh.ru/dowithdraw

Код:
#include <GUIConstants.au3>
#include <IE.au3>

GUICreate("Оповещение атаки", 1024, 800)
$oIE = _IECreateEmbedded() 
GUICtrlCreateObj($oIE,10,10,1000,768) 

GUISetState (@SW_SHOW)
_IENavigate($oIE,"http://w12.wofh.ru/town") 

$HTML=_IEBodyReadHTML($oIE)
$r=StringRegExp($HTML,'(?sim)Население',0)
if $r == 1 then
MsgBox(0,'Найдено',$r)
_IENavigate($oIE,"http://w12.wofh.ru/army")
Sleep (8000)
   $HTML_withdraw=_IEBodyReadHTML($oIE)
	  $withdraw=StringRegExp($HTML_withdraw,'(?sim)withdraw',0)
		 if $withdraw == 1 Then
			MsgBox(0,'Найдено Ваше подкрепление', $withdraw)
			_IENavigate($oIE,"http://w12.wofh.ru/withdraw?from=9555")
			Sleep (8000)
			_IELinkClickByText ($oIE, "Выбрать всю армию")   ; Пробуем перейти
			Sleep (3000)
				 

			 
			 Local $oInputs = _IETagNameGetCollection($oIE, 'input')
			For $oInput in $oInputs
			If StringInStr(_IEPropertyGet($oInput, 'innertext'), 'Отозвать') Then
			_IEAction($oInput, 'click')
			   ExitLoop
			EndIf
			Next
					
		 Elseif $withdraw == 0 Then
		 MsgBox(0,'Не найдено подкрепления', $withdraw)
			_IENavigate($oIE,"http://w12.wofh.ru/army")
		 EndIf
ElseIf $r == 0 Then
    MsgBox(4096, "Ненайдено", $r)
EndIf


While 1
    $msg = GUIGetMsg()
    Select
        Case $msg = $GUI_EVENT_CLOSE
            ExitLoop
    EndSelect
WEnd
 
Автор
T

twilight1983

Новичок
Сообщения
6
Репутация
0
Заработало только так.
Код:
$oInputs = _IETagNameGetCollection($oIE, "input")

			For $oInput In $oInputs
			If $oInput.value == 'Отозвать'   Then
			_IEAction($oInput, 'click')
			EndIf
			Next
 

kibermag1

Новичок
Сообщения
3
Репутация
0
Доброго времени суток! Не могу заставить работать _IELinkClickByText. Дело в том, что здесь описываются примеры создания новых окон, а мне надо нажать ссылку в открытом ранее окне. Читал хелп, но там описывается на английском. Одним словом как мне присвоить переменной вкладку в браузере? Извините за корявость объяснений, надеюсь на ваше понимание.
 

madmasles

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


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