Что нового

[Автоматизация] Фрейм. Ввод числа и клик по кнопке.

z1z

Новичок
Сообщения
14
Репутация
0
Необходимо ввести число (количество рыбы), а затем кликнуть по кнопке создать.

Клик по кнопке я сделал.

Код:
#include <IE.au3>
$oIE = _IECreate("http://www.ereality.ru/core/", 1, 1, 0)
; Кнопка создать работает.

$oFrame = _IEFrameGetObjByName ($oIE, 'main')
$oInputs = _IETagNameGetCollection($oFrame, 'input')
For $oInput In $oInputs
    If $oInput.value == 'Создать' Then
        _IEAction($oInput, 'click')
        ExitLoop
    EndIf
Next


А вот с вводом числа в поле, пока проблема.
Как это можно реализовать и в каких функциях искать ?

Вот код фрейма.
Код:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" /><link href="/css/_buildings.css?20130312" rel="stylesheet" type="text/css" /><link href="/css/city.css?11" rel="stylesheet" type="text/css" /><!--[if lte IE 6]><style>img {behavior: url(/css/png2.htc?20090601) }</style><![endif]--></head>
<body scroll="no"class="textM">
<script src="/js/_jquery.js?20090325"></script>
<script src="/js/20130151/_building/"></script>
<script src="/js/20130129/weap/"></script>
<script src="/js/show_hide.js?v5"></script>
<script src="/js/taverna.js"></script>
<script src="/js/_ui.js"></script>
<script src="/js/stock.js?20090605"></script>

<script language="JavaScript">hide_picture = true;wndToken="4d8e";top.user.setMoney(11.00,4284.00);top.user.setMassa(355,658);
var bPlace="taverna",bName="taverna",menu=[["mode=fish", "Рыбные супы", 0],["mode=crabs", "Крабовые палочки", 1],["", ""],["mode=sell", "Продать ресурсы", 0],["mode=buy", "Купить ресурсы", 0],["", ""],["-", "Биржа", 0],["mode=alltypes", "Поиск товаров", ],["mode=store", "Склад Вещей<span id='span_storecount'></span>", ],["mode=useritems", "Выставить лот", ],["-",""],["-", "Мои операции", 0],["mode=getmylots", "Выставленные лоты", ],["mode=history", "История сделок", ]],Msg="Для создания крабовых палочек Вам необходимо не менее 3х крабов",bHTML="<FORM METHOD=\"POST\" ACTION=\"/map.php?action=do_crabs&key=MWUzZDgxZjk0ODYyZDdhY2VhMGUxNDc5MjZlODE0ZTM6MTM3NDczNzI5NTk=\" NAME=\"F1\"><table class=\"textM\" width=100%><tr><td ><div align=\"center\"><b>Наглый Лобстер I</b>
<img src=\"http://img.ereality.ru/w/crab_01.png\" alt=\"\"/></div><hr />  Уворот:  <b>+3%</b>
  Сокрушение: <b>+5%</b>
  Стойкость: <b>+1%</b>
  Количество (<b>0</b>): <input  DISABLED onkeyup=\"_crabProc()\" size=2 name=\"c1\" type=\"text\" value=\"0\" class=\"field\" /></td><td ><div align=\"center\"><b>Наглый Лобстер II</b>
<img src=\"http://img.ereality.ru/w/crab_01.png\" alt=\"\"/></div><hr />  Уворот:  <b>+1%</b>
  Сокрушение: <b>+3%</b>
  Стойкость: <b>+5%</b>
  Количество (<b>0</b>): <input  DISABLED onkeyup=\"_crabProc()\" size=2 name=\"c2\" type=\"text\" value=\"0\" class=\"field\" /></td><td ><div align=\"center\"><b>Наглый Лобстер III</b>
<img src=\"http://img.ereality.ru/w/crab_01.png\" alt=\"\"/></div><hr />  Уворот:  <b>+5%</b>
  Сокрушение: <b>+1%</b>
  Стойкость: <b>+3%</b>
  Количество (<b>0</b>): <input  DISABLED onkeyup=\"_crabProc()\" size=2 name=\"c3\" type=\"text\" value=\"0\" class=\"field\" /></td></tr><tr><td colspan=3><hr /></td><tr><tr><td ><div align=\"center\"><b>Мохнатый Краб I</b>
<img src=\"http://img.ereality.ru/w/crab_02.png\" alt=\"\"/></div><hr />  Доп. од: <b>+3</b>
  Точность: <b>+9%</b>
  Количество (<b>0</b>): <input  DISABLED onkeyup=\"_crabProc()\" size=2 name=\"c4\" type=\"text\" value=\"0\" class=\"field\" /></td><td ><div align=\"center\"><b>Мохнатый Краб II</b>
<img src=\"http://img.ereality.ru/w/crab_02.png\" alt=\"\"/></div><hr />  Доп. од: <b>+5</b>
  Точность: <b>+7%</b>
  Количество (<b>0</b>): <input  DISABLED onkeyup=\"_crabProc()\" size=2 name=\"c5\" type=\"text\" value=\"0\" class=\"field\" /></td><td ><div align=\"center\"><b>Мохнатый Краб III</b>
<img src=\"http://img.ereality.ru/w/crab_02.png\" alt=\"\"/></div><hr />  Доп. од: <b>+7</b>
  Точность: <b>+5%</b>
  Количество (<b>0</b>): <input  DISABLED onkeyup=\"_crabProc()\" size=2 name=\"c6\" type=\"text\" value=\"0\" class=\"field\" /></td></tr><tr><td colspan=3><hr /></td><tr><tr><td ><div align=\"center\"><b>Черный Хищник I</b>
<img src=\"http://img.ereality.ru/w/crab_03.png\" alt=\"\"/></div><hr />  Уворот:  <b>+12%</b>
  Количество (<b>0</b>): <input  DISABLED onkeyup=\"_crabProc()\" size=2 name=\"c7\" type=\"text\" value=\"0\" class=\"field\" /></td><td ><div align=\"center\"><b>Черный Хищник II</b>
<img src=\"http://img.ereality.ru/w/crab_03.png\" alt=\"\"/></div><hr />  Сокрушение: <b>+12%</b>
  Количество (<b>0</b>): <input  DISABLED onkeyup=\"_crabProc()\" size=2 name=\"c8\" type=\"text\" value=\"0\" class=\"field\" /></td><td ><div align=\"center\"><b>Черный Хищник III</b>
<img src=\"http://img.ereality.ru/w/crab_03.png\" alt=\"\"/></div><hr />  Стойкость: <b>+12%</b>
  Количество (<b>0</b>): <input  DISABLED onkeyup=\"_crabProc()\" size=2 name=\"c9\" type=\"text\" value=\"0\" class=\"field\" /></td></tr><tr><td colspan=3><hr /></td><tr></tr><tr><td rowspan=2 align=\"center\" valign=\"top\"><b>Крабовые палочки</b>
<img src=\"http://img.ereality.ru/w/crabsticks.png\" border=\"0\"/><input id=\"test\"type=\"hidden\"name=\"srv\"value=\"1374737295\"/></td></tr><tr><td align=\"center\" colspan=2 valign=\"top\"><table class=\"textM\"><tr><td>Доп. ОД:</td><td id=\"crab_id1\"></td></tr><tr><td>Сокрушение:</td><td id=\"crab_id2\"></td></tr><tr><td>Стойкость:</td><td id=\"crab_id3\"></td></tr><tr><td>Точность:</td><td id=\"crab_id5\"></td></tr><tr><td>Уворот:</td><td id=\"crab_id4\"></td></tr><tr><td>Масса:</td><td id=\"crab_id7\"></td></tr><tr><td>Цена крабовых палочек:</td><td id=\"crab_id6\"></td></tr><tr><td>Цена создания:</td><td id=\"crab_id8\"></td></tr><tr><td>Время создания:</td><td id=\"crab_id9\"></td></tr></table></td></tr><tr><td colspan=3><HR /></td></tr><tr><td align=\"center\" colspan=3><input name=\"SB1\" type=\"submit\" value=\"Создать\" class=\"butt1\"style=\"visibility: hidden;width:1px;height:1px;display: none;\"><input name=\"SB\" type=\"submit\" value=\"Сoздать\" class=\"butt1\" onclick=\"if (!createCrab()) return false;\" style=\"width: 90px\"></form></td></tr></table>";
bots = [];CurLotsMass=0;MaxLotsMass=165; showMirkaAdv=true;
NPCData=[[426, "Крофт", "kroft.png"]];
_genBuildingHTML();
pro5=59;cp=[[0,0,5,1,3,0,0.75,1,"Наглый Лобстер I"],[0,0,3,5,1,0,0.75,1,"Наглый Лобстер II"],[0,0,1,3,5,0,0.75,1,"Наглый Лобстер III"],[0,3,0,0,0,9,2.1,1,"Мохнатый Краб I"],[0,5,0,0,0,7,2.1,1,"Мохнатый Краб II"],[0,7,0,0,0,5,2.1,1,"Мохнатый Краб III"],[0,0,0,0,12,0,4,1,"Черный Хищник I"],[0,0,12,0,0,0,3,1,"Черный Хищник II"],[0,0,0,12,0,0,2.5,1,"Черный Хищник III"]];timeSettings=[1373992760,2,12,15,1374737295];_crabProc();var _f = function() {$('#test').val("40a25f55cc39c065941037dabb8f42c4");}; $(document.body).keyup(_f).click(_f);$('[name=F1] input').focus(ClearInput);$('[name=F1] input').blur(ResetInput);
NPCHtml();</script><SCRIPT>top.user.place2 = 0;top.user.bot = 0;</SCRIPT>
 
Автор
z1z

z1z

Новичок
Сообщения
14
Репутация
0
KitRoo_t
OffTopic:

Грани Реальности
 

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
Ну...
Попробуй так
Код:
#include <IE.au3>
$oIE = _IECreate("http://www.ereality.ru/core/", 1, 1, 0)
$oForm = _IEFormElementGetCollection($oIE,0)
$oInputs = _IEFormElementGetObjByName($oForm,"input")
For $oInput In $oInputs
	If $oInput.value == '0' Then _IEFormElementSetValue($oInput,10)
	; вообще-то тут лучше было бы
	; If $oInput.classname == 'c1' Then _IEFormElementSetValue($oInput,10)
	; но это когда ты уже выбирал что тебе нужно и тогда подставляешь c1, c2, c3, ...
    If $oInput.value == 'Создать' Then
        _IEAction($oInput, 'click')
        ExitLoop
    EndIf
Next


При чём тут фрейм? ...
 
Автор
z1z

z1z

Новичок
Сообщения
14
Репутация
0
Спасибо за подсказку, но код не работает.
А работает вот так.

Код:
#include <IE.au3>
$oIE = _IECreate("http://www.ereality.ru/core/", 1, 1, 0)
$oFrame = _IEFrameGetObjByName ($oIE, 'main')
$oInputs = _IETagNameGetCollection($oFrame, 'input')
For $oInput In $oInputs
	If $oInput.name == 'c2' Then
	_IEFormElementSetValue($oInput,10)
		 ExitLoop
  EndIf
Next
; Кнопка создать
$oFrame = _IEFrameGetObjByName ($oIE, 'main')
$oInputs = _IETagNameGetCollection($oFrame, 'input')
For $oInput In $oInputs
    If $oInput.value == 'Создать' Then
        _IEAction($oInput, 'click')
        ExitLoop
    EndIf
Next


Как мне по культурней сделать этот код ? А то как понимаю по колхозному написан.
Еще бы через GUI все сделать, но это уже отдельная история.
 

xklx

Новичок
Сообщения
50
Репутация
3
Правдо данный код уже не актуален, интерфейс профессии повара изменился. Да и еще добавили обязательный фокус в input чтобы кнопка стала активной, но на enter норм срабатывает ;)

Код:
$oTemps = _IETagNameGetCollection($oFrame, "input")
For $oTemp In $oTemps
	If $oTemp.classname = 'field' Then
		_IEFormElementSetValue($oTemp,'9')
		_IEAction($oTemp, "focus")
		ControlSend("","",$GUI,"{ENTER}")
		Sleep(500)
		ControlSend("","",$GUI,"{ENTER}")
		ExitLoop
	EndIf
Next
 
Верх