Что нового

[Автоматизация] Клик по кнопке в игре. java sсript

z1z

Новичок
Сообщения
14
Репутация
0
В игре почти все кнопки через java sсript. Нужно нажать на кнопку "Начать плавить"
Код:
<input class=\"butt1\" type=\"submit\" name=\"beginfusion0\" value=\" Нaчaть плaвить \"style=\"width:1px;height:1px;visibility: hidden;\"><input class=\"butt1\" type=\"submit\" style=\"width: 135px;\" name=\"beginfusion\" value=\" Начать плавить \">

<!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/class.furnace.js?201001485"></script>
<script src="/js/_ui.js"></script>
<script src="/js/stock.js?20090605"></script>

<script language="JavaScript">wndToken="15059";top.user.setMoney(11.00,12157.51);top.user.setMassa(279,658);
var bPlace="furnace2-4",bName="furnace",menu=[["action=internal", "Внутренний зал",1],["action=announcements", "Информация",0],["action=changefurnace", "Сменить печь",0],["action=ingotsstatistics", "Статистика по Q",0],["action=ingotsstatistics1", "Статистика по P",0],["action=currentfuel", "Топливо в печи",0],["action=shamedesk", "Позорная доска",0],["action=electionsinfo", "Результаты выборов",0],["action=buy", "Купить ресурсы",0],["action=sell", "Продать ресурсы",0],["", ""],["-", "Биржа", 0],["action=alltypes", "Поиск товаров", ],["action=store", "Склад Вещей<span id='span_storecount'></span>", ],["action=useritems", "Выставить лот", ],["-",""],["-", "Мои операции", 0],["action=getmylots", "Выставленные лоты", ],["action=history", "История сделок", ]],Msg="Вы успешно выплавили слиток `<b>Бронза</b>`",bHTML="<span id=\"spanTime\"></span><form action=\"/map.php\" method=\"POST\"><span style=\"display:none;\" id=\"isbroken\">0</span><center><table border=0 class=\"textS\" align=center><tr><td align=center><div id=\"minfo\"><span id=\"curfurnace\"><b>Ваша текущая печь - <span style=\"color:#AA0000\">Учебная печь</span> (Скит)</b>
</span><b>Текущая температура - <span id=\"tcurrent\" style=\"color:#AA0000\">921</span><span id=\"tplus\" style=\"\"> (-1)</span><span style=\"color:#AA0000\"></span></b>
</div></td></tr><tr><td align=center><div id=\"mactions\"><input class=\"butt1\" type=\"submit\" style=\"width: 135px;\" name=\"addfuel\" value=\" Подкинуть топливо \"> <input class=\"butt1\" type=\"submit\" name=\"beginfusion0\" value=\" Нaчaть плaвить \"style=\"width:1px;height:1px;visibility: hidden;\"><input class=\"butt1\" type=\"submit\" style=\"width: 135px;\" name=\"beginfusion\" value=\" Начать плавить \">
</div></td></tr><tr><td align=center><div id=\"mcool\"><b><span class=\"textS\">Система охлаждения - </span><span id=\"coolstate\" class=\"textS\" style=\"color:#AA0000\">отключена 15:03</span><span id=\"coolhname\" class=\"textS\"> (Melena)</span></b> <input type=\"button\" onClick=\"Furnace.CoolConfirm(\'turnoffcool\', \'Включить СО\');\" class=\"butt1\" style=\"width: 90px;\" name=\"\n turnoffcool\" value=\" Включить СО\" >
</div></td></tr><tr><td align=center></td></tr></table></center></form><span style=\"display:none;\" id=\"fusioning\">0</span>";
top.chat.msgSystem("Смотритель","Работа завершена, получено опыта: <b>61</b> (38.7%)", "666666");top.core.playSound("SOUND_WRK");CurLotsMass=0; MaxLotsMass=165;
NPCData=[];
_genBuildingHTML();
var Furnace = new _furnace();Furnace.init(4);Furnace.ImgPath = "http://img.ereality.ru/metall/";setInterval(Furnace.GetState, 1000);
NPCHtml();</script><SCRIPT>top.user.place2 = 1;top.user.bot = 0;top.user.setHME(1628,1628,0,10,10,0,375,385,94);</SCRIPT>

Пробовал
Код:
#include <IE.au3>
$oIE = _IECreate("http://www.ereality.ru/core/", 1, 1, 0)

$oElements = _IETagNameGetCollection ($oIE,'input')
For $oElement In $oElements
    _IEErrorHandlerRegister ("MyErrFunc")
    if $oElement.classname=='butt1' and $oElement.type=='submit' and $oElement.value=='Нaчaть плaвить' Then
        $oElement.click()
    EndIf
Next


Код:
#include <IE.au3>
$oIE = _IECreate("http://www.ereality.ru/core/", 1, 1, 0)

$Inputs = _IETagNameGetCollection($oIE, 'input')
For $Input In $Inputs

    If $Input.classname == 'beginfusion0' Then
        _IEAction($Input, 'click')
        _IELoadWait($oIE)
        ExitLoop
    EndIf
	Next


Пока безрезультатно.
Если кто знает прошу помочь.
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
z1z [?]
Пока безрезультатно.

Вариант 1
Видите пробелы в начале и в конце строки "Начать плавить":
Код:
value=\" Нaчaть плaвить \"
а тут их у вас нет:
Код:
$oElement.value=='Нaчaть плaвить'


Вариант 2
Где вы увидели в HTML:
Код:
$Input.classname == 'beginfusion0'

я лично вижу только:
 
Автор
z1z

z1z

Новичок
Сообщения
14
Репутация
0
Вариант 1 Действие не удается.
Код:
#include <IE.au3>
$oIE = _IECreate("http://www.ereality.ru/core/", 1, 1, 0)

$oElements = _IETagNameGetCollection ($oIE,'input')
For $oElement In $oElements
    _IEErrorHandlerRegister ("MyErrFunc")
    if $oElement.class=="butt1\" and $oElement.type=="submit\" and $oElement.value== " Нaчaть плaвить \" Then
        $oElement.click()
    EndIf
Next


Вылетает ошибка в строке.
Код:
if $oElement.class=="butt1\" and $oElement.type=="submit\" and $oElement.value== " Нaчaть плaвить \" Then
        $oElement.click()

Error: The requested action with this object has failed.

Вариант 2 Использовать
Код:
class=\"butt1\"
не получится т.к на этой странице этого класса много.
Попробовал
Код:
#include <IE.au3>
$oIE = _IECreate("http://www.ereality.ru/core/", 1, 1, 0)

$Inputs = _IETagNameGetCollection($oIE, 'input')
For $Input In $Inputs

    If $Input.value==" Нaчaть плaвить \" Then
        _IEAction($Input, 'click')
        _IELoadWait($oIE)
        ExitLoop
    EndIf
    Next


Ошибок нет, но и действий никаких.
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
А так:
Код:
#include <IE.au3>
$oIE = _IECreate("http://www.ereality.ru/core/", 1, 1, 0)
_IELoadWait($oIE)
$Inputs = _IETagNameGetCollection($oIE, 'input')
For $Input In $Inputs
    If StringStripWS($Input.value, 3) == 'Начать плавить' Then
        _IEAction($Input, 'click')
        _IELoadWait($oIE)
        ExitLoop
    EndIf
Next
 
Автор
z1z

z1z

Новичок
Сообщения
14
Репутация
0
Все так же, глухо. Страницу активной делает, а на кнопку клика нет.
Так то же не получается.
Код:
#include <IE.au3>
$oIE = _IECreate("http://www.ereality.ru/core/", 1, 1, 0)
_IELoadWait($oIE)
$Inputs = _IETagNameGetCollection($oIE, 'input')
For $Input In $Inputs
    If StringStripWS($Input.value, 3) == ' Начать плавить \' Then
        _IEAction($Input, 'click')
        _IELoadWait($oIE)
        ExitLoop
    EndIf
Next



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

Проблема изменилась.
HTML я посмотрел нажав правой кнопкой по странице и через меню открыл.
Счас через AutoIT записал его в фаил и тут все по другому.
Прикрепил файлик.
Теперь проблема заключается. Как все же нажать на эту кнопку.
Если нужно я скрин выложу.
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
z1z
Дайте весь HTML код страницы.
 
Автор
z1z

z1z

Новичок
Сообщения
14
Репутация
0
Код:
<!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/class.furnace.js?201001485"></script>
<script src="/js/_ui.js"></script>
<script src="/js/stock.js?20090605"></script>

<script language="JavaScript">wndToken="6d36";top.user.setMoney(11.00,12099.91);top.user.setMassa(251,658);
var bPlace="furnace2-4",bName="furnace",menu=[["action=internal", "Внутренний зал",1],["action=announcements", "Информация",0],["action=changefurnace", "Сменить печь",0],["action=ingotsstatistics", "Статистика по Q",0],["action=ingotsstatistics1", "Статистика по P",0],["action=currentfuel", "Топливо в печи",0],["action=shamedesk", "Позорная доска",0],["action=electionsinfo", "Результаты выборов",0],["action=buy", "Купить ресурсы",0],["action=sell", "Продать ресурсы",0],["", ""],["-", "Биржа", 0],["action=alltypes", "Поиск товаров", ],["action=store", "Склад Вещей<span id='span_storecount'></span>", ],["action=useritems", "Выставить лот", ],["-",""],["-", "Мои операции", 0],["action=getmylots", "Выставленные лоты", ],["action=history", "История сделок", ]],Msg="",bHTML="<span id=\"spanTime\"></span><form action=\"/map.php\" method=\"POST\"><span style=\"display:none;\" id=\"isbroken\">0</span><center><table border=0 class=\"textS\" align=center><tr><td align=center><div id=\"minfo\"><span id=\"curfurnace\"><b>Ваша текущая печь - <span style=\"color:#AA0000\">Учебная печь</span> (Скит)</b>
</span><b>Текущая температура - <span id=\"tcurrent\" style=\"color:#AA0000\">931</span><span id=\"tplus\" style=\"\"> (-3)</span><span style=\"color:#AA0000\"></span></b>
</div></td></tr><tr><td align=center><div id=\"mactions\"><input class=\"butt1\" type=\"submit\" style=\"width: 135px;\" name=\"addfuel\" value=\" Подкинуть топливо \"> <input class=\"butt1\" type=\"submit\" name=\"beginfusion0\" value=\" Нaчaть плaвить \"style=\"width:1px;height:1px;visibility: hidden;\"><input class=\"butt1\" type=\"submit\" style=\"width: 135px;\" name=\"beginfusion\" value=\" Начать плавить \">
</div></td></tr><tr><td align=center><div id=\"mcool\"><b><span class=\"textS\">Система охлаждения - </span><span id=\"coolstate\" class=\"textS\" style=\"color:#AA0000\">отключена 15:03</span><span id=\"coolhname\" class=\"textS\"> (Melena)</span></b>   <input type=\"button\" onClick=\"Furnace.CoolConfirm(\'turnoffcool\', \'Включить СО\');\" class=\"butt1\" style=\"width: 90px;\" name=\"\n					turnoffcool\" value=\" Включить СО\" >
</div></td></tr><tr><td align=center></td></tr></table></center></form><span style=\"display:none;\" id=\"fusioning\">0</span>";
top.chat.move("Остров Весеннего Листа: Литейная 2, учебная печь");top.users.load(1);CurLotsMass=0; MaxLotsMass=165; 
NPCData=[];
_genBuildingHTML();
var Furnace = new _furnace();Furnace.init(4);Furnace.ImgPath = "http://img.ereality.ru/metall/";setInterval(Furnace.GetState, 1000);
NPCHtml();</script>

Через AutoIT
Код:
#include <IE.au3>

$oIE = _IECreate("http://www.ereality.ru/core/", 1, 1, 0)
$sHTML = _IEDocReadHTML ($oIE) ; Читает код HTML
$hFile = FileOpen(@ScriptDir & '\HTMLText.txt', 2)
FileWrite($hFile, $sHTML)
FileClose($hFile)


Выше в сообщении файл прикрепил.
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Это не весь код.
Кликните по странице правой кнопкой далее "Просмотр HTML-кода"
 
Автор
z1z

z1z

Новичок
Сообщения
14
Репутация
0
Весь код сюда не поместится. При клике на "Просмотр HTML" в разных местах окна, выдает два вида кода.
Первый тот что не полный.
Второй в файле прикрепил т.к он сюда не помещается.
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Запустите скрипт и в консоли посмотрите, есть ваша кнопка или нет.
Код:
#include <IE.au3>
$oIE = _IECreate("http://www.ereality.ru/core/", 1, 1, 0)
_IELoadWait($oIE)
$Inputs = _IETagNameGetCollection($oIE, 'input')
For $Input In $Inputs
	ConsoleWrite('class: ' & $Input.classname & @CRLF)
	ConsoleWrite('type: ' & $Input.type & @CRLF)
	ConsoleWrite('name: ' & $Input.name & @CRLF)
	ConsoleWrite('value: ' & $Input.value & @CRLF)
	ConsoleWrite('========================================' & @CRLF)
Next
 
Автор
z1z

z1z

Новичок
Сообщения
14
Репутация
0
Запустил. Нажал F12 и там где консоль написано.
Код:
SCRIPT87: Недопустимый аргумент. 
_jquery.js?457209266, строка 122 символ 39
 
Автор
z1z

z1z

Новичок
Сообщения
14
Репутация
0
Вот что выдало
class: 0
type: image
name: 0
value: 0
========================================
class: 0
type: image
name: 0
value: 0
========================================
class: 0
type: image
name: 0
value: 0
========================================
class: field
type: text
name: h_name
value: 0
========================================
class: field
type: text
name: reas
value: 0
========================================
class: field
type: text
name: 0
value: 0
========================================
class: field
type: text
name: 0
value: 0
========================================
class: butt1
type: button
name: 0
value: Галерея 1
========================================
class: butt1
type: button
name: 0
value: Галерея 2
========================================
class: butt1
type: button
name: 0
value: Личные
========================================
class: butt1
type: button
name: 0
value: X
========================================
class: EditBox
type: text
name: 0
value: 0
========================================
class: EditBox
type: text
name: 0
value: 0
========================================
class: EditBox
type: text
name: 0
value: 0
========================================
class: EditBox
type: text
name: 0
value: 0
========================================
class: EditBox
type: text
name: 0
value: 0
========================================
class: EditBox
type: text
name: 0
value: 0
========================================
class: field
type: text
name: 0
value: 0
========================================
class: field
type: text
name: 0
value: 14.07.2013
========================================
class: field
type: text
name: 0
value: 14.07.2013
========================================
class: butt1
type: submit
name: submit
value: Показать
========================================
class: 0
type: image
name: 0
value: 0
========================================
class: btn_fight_end
type: image
name: 0
value: 0
========================================
class: 0
type: text
name: msg
value: 0
========================================
+>18:56:37 AutoIt3.exe ended.rc:0
>Exit code: 0 Time: 8.859
 
Автор
z1z

z1z

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

Может тогда пробовать со скрина вырезать кнопочку и по картинке кликать ?
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Код:
$oIE = _IECreate('http://www.ereality.ru/core/', 1, 1, 0)
$oFrame = _IEFrameGetObjByName ($oIE, 'main')
$oInputs = _IETagNameGetCollection($oFrame, 'input')
For $oInput In $oInputs
    If StringStripWS($oInput.value, 3) == 'Начать плавить' Then
		_IEAction($oInput, 'click')
		ExitLoop
    EndIf
Next
 
Автор
z1z

z1z

Новичок
Сообщения
14
Репутация
0
:laugh: работает :IL_AutoIt_1:
Спасибо огромное.
Попробую так же другие профессии автоматизировать.

p.s Не знаю как + в репу поставить.
 
Верх