Что нового

[Автоматизация] Скрипт не вводит значение в поля

ini

Новичок
Сообщения
55
Репутация
0
Здравствуйте, в очередной раз не могу разобраться :scratch:
Есть сайт:
Код:
<HTML>
<HEAD>
  <TITLE>SYSTEM</TITLE>
  <META http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <META HTTP-EQUIV="Pragma" CONTENT="no-cache" />
  <LINK href="/ps/theme/shell/styles.css" type="text/css" rel="STYLESHEET" />
  <SCRIPT language="JavaScript" type="text/javascript" src="/ps/sbms/scripts.js"></SCRIPT>
  <SCRIPT language="JavaScript" type="text/javascript" src="/ps/sbms/forms.js"></SCRIPT>
</HEAD>
<BODY class="sbms-workframe"onload="form_onload();">
			<div style="width:200px; margin-top:32px; margin-left:50px;">
				<div class="sbms-magtitle" style="margin-bottom:3px;">
          <SPAN msgid="60030032">Пользователь.</SPAN> :
        </div>
				<div style="margin-bottom:9px;">
          <INPUT type="text" id="TXT_LOGIN" style="width: 200px;" class="sbms-textbox" maxLength="50" tabIndex="1"/>
				</div>
				<div class="sbms-magtitle" style="margin-bottom:3px;">
          <SPAN msgid="60030033">Пароль.</SPAN> :
        </div>
				<div style="margin-bottom:6px;">
          <INPUT type="password" id="TXT_PASSWORD" class="sbms-textbox" style="width: 200px;" maxLength="32" tabIndex="2"/>
				</div>
				<div>
          <BUTTON control="sbms-button"
            onclick="cmd_enter();"
            id="BTN_ENTER"
            lblid="60030014"  label="Войти"
            ttlid="60030015"  title="СИСТЕМА."
            style="width:80px;"
            tabIndex="3">
          </BUTTON>
				</div>
        <div style="margin-bottom:9px;"><SPAN class="sbms-errmsg" id="ERROR_MESSAGE_TXT"></SPAN></div>
			</div>
</BODY>
<SCRIPT language="JavaScript"><!--

И есть скрипт:
Код:
#include <IE.au3>
$oIE = _IECreate ("сайт", 0, 1)
WinWaitActive("Безопасность Windows")
Send("{Enter}")
_IELoadWait ($oIE)
    $oForm = _IEGetObjById($oIE, 0)
    $oLogin  = _IEGetObjById($oForm,"TXT_LOGIN")
    $oPass   = _IEGetObjById($oForm,"TXT_PASSWORD")
    $oSubmit   = _IEGetObjById($oForm,"BTN_ENTER")
    _IEFormElementSetValue($oLogin, "логин")
    _IEFormElementSetValue($oPass, "пароль")
    _IEAction ($oSubmit, "click")
Exit

Не логинится никак :mad: Помогите пожалуйста разобраться
 

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
Re: Помогите исправвить скрипт

Что-то не вижу на твоём сайте собственно формы...
А почему ты не проверяешь ошибки после попытки получения $oForm ?
Откуда ты знаешь что дальше ты действительно работаешь с нужной формой?
 
Автор
I

ini

Новичок
Сообщения
55
Репутация
0
Re: Помогите исправвить скрипт

Я в этом деле новичек, тонкостей пока не понимаю
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Re: Помогите исправвить скрипт

Предупреждение За нарушение правил форума (пункт Б.5):
Имя темы должно нести смысловую нагрузку (отражать суть вопроса/проблемы)
Правильно сформулированное название темы привлекает больше внимания, и шансы получить конкретный ответ увеличиваются.


Данные правила могут пополняться локальными правилами раздела.
Как правильно называть темы

"Помогите исправвить скрипт" - это неприемлемое название темы, переименуйте тему иначе она будет закрыта, а вам возможно будет выдан бан на несколько дней.

С уважением, ваш Глобальный модератор.
 
Автор
I

ini

Новичок
Сообщения
55
Репутация
0
[Автоматизация] Re: [Автоматизация] Скрипт не вводит значение в поля

madmasles, Извиняюсь, изменил


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

Неужели никто не подскажет? Уже разные варианты перепробывал, не вводит и всё, доходит до загрузки сайта а поля остаются пустыми :(


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

Попробовал этим скриптом, не вводит значения :-X

Код:
$aURL="Сайт"
$aLogin="test"
$aPass="1234"

#include<IE.au3>
$aIE=_IECreate($aURL)
WinWaitActive("Безопасность Windows")
Send("{Enter}")
_IELoadWait ($aIE)
$aLogn=_IEGetObjById($aIE,"TXT_LOGIN")
_IEFormElementSetValue($aLogn,$aLogin)
$aPassd=_IEGetObjById($aIE,"TXT_PASSWORD")
_IEFormElementSetValue($aPassd,$aPass)
Exit
 

BIOS

Жизнь - игра. График - супер, но сюжет - хреновый.
Сообщения
173
Репутация
69
Если вспомнить изначальное содержимое спойлера - то страница с полями расположена в фрейме
Прежде чем пытаться получить доступ к полям - нужно получить доступ к фрейму, а затем, относительно него и воздействовать на поля.
 
Автор
I

ini

Новичок
Сообщения
55
Репутация
0
[Автоматизация] Re: [Автоматизация] Скрипт не вводит значение в поля

BIOS, Спасибо за указание направления, как я понял сейчас код сайта не актуален потому что нет имени фрейма, завтра попробую и отпишусь. Прошу прощения за невнимательность :-\ :-[


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

Здравствуйте, попробовал, не получилось :(
код фрема:

Код:
<div id="SSW_WORKFRAMES_CONTAINER" style="width:100%; height:100%;"><table border="0" cellspacing="0" cellpadding="0" class="workframe"><tbody><tr><td id="SSW_1_0" style="  "><iframe name="fr1" class="sbms-workframe" [b]id="fr1"[/b] lastusage="Thu Feb 13 2014 12:34:53 GMT+0400 (Московское время (зима))" frameborder="0" src="/ps/sbms/forms/login.html" currenthref="/ps/sbms/forms/login.html" style="position: relative; width: 100%; height: 100%; border: 0px; z-index: 0;"></iframe></td></tr></tbody></table></div>

<input type="text" id="TXT_LOGIN" style="width: 200px;" class="sbms-textbox" maxlength="50" tabindex="1">

<input type="password" id="TXT_PASSWORD" class="sbms-textbox" style="width: 200px;" maxlength="32" tabindex="2">


<iframe name="P[b]S_SBMS_SHELL_CACHE_FRAME:www2.activa.megadealer.ru[/b]" id="PS_SBMS_SHELL_CACHE_FRAME:www2.activa.megadealer.ru" style="visibility: hidden; position: absolute; top: 0px; width: 0px; height: 0px;"></iframe><div class="sbms_glass_pane" style="cursor: col-resize; opacity: 0; z-index: 999; display: none;"></div><div id="IEGarbageCollector" style="display: none;"></div></body></html>

Пробую скриптом:
Код:
$aURL="https://www2.activa.megadealer.ru/ps/sbms/shell.html"
$aLogin="test"
$aPass="1234"

#include<IE.au3>
$aIE=_IECreate($aURL)
_IELoadWait($aIE)
$aFrame = _IEFrameGetObjByName($aIE, "fr1")
$aLogn = _IEGetObjById($aFrame, "TXT_LOGIN")
_IEFormElementSetValue($aLogn, $aLogin)
$aPassd = _IEGetObjById($aFrame, "TXT_PASSWORD")
_IEFormElementSetValue($aPassd, $aPass)
MsgBox(0, "Finish", "i'm finish")
Exit

Вот что выдает...
Код:
--> IE.au3 T3.0-1 Warning from function _IEGetObjById, $_IEStatus_NoMatch (TXT_LOGIN)
--> IE.au3 T3.0-1 Error from function _IEFormElementSetValue, $_IEStatus_InvalidDataType
--> IE.au3 T3.0-1 Warning from function _IEGetObjById, $_IEStatus_NoMatch (TXT_PASSWORD)
--> IE.au3 T3.0-1 Error from function _IEFormElementSetValue, $_IEStatus_InvalidDataType
>Exit code: 0    Time: 4.897


Пробовал имя "fr1" и "PS_SBMS_SHELL_CACHE_FRAME:www2.activa.megadealer.ru"
Никак


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

Ура товариши... я смог :laugh:
Подключался не к тому фрему :whistle:
Если кому пригодится вот код:
Код:
$aURL="https://сайт/ps/sbms/shell.html"
$aLogin="login"
$aPass="password"

#include<IE.au3>
$aIE=_IECreate($aURL)
_IELoadWait($aIE)
$aFrame = _IEFrameGetCollection($aIE, "https://сайт/ps/sbms/forms/login.html")
_IELoadWait ($aFrame)
$aLogn = _IEGetObjById($aFrame, "TXT_LOGIN")
_IEFormElementSetValue($aLogn, $aLogin)
$aPassd = _IEGetObjById($aFrame, "TXT_PASSWORD")
_IEFormElementSetValue($aPassd, $aPass)
$aButt = _IEGetObjById($aFrame, "BTN_ENTER")
_IEAction($aButt, "click")
Exit

Нужный Frame нашел надстройкой DebugBar
Офф. сайт - http://www.debugbar.com/
 
Верх