tigran_astranet
Новичок
- Сообщения
- 3
- Репутация
- 0
Добрый день!
Начал недавно изучать Autoit и уже получилось открыть сайт - авторизоваться - открыть нужное меню - написать команду - и запустить ее.
Но затем столкнулся с проблемой после отработки команды, я получаю таблицу с полями, но таблица разбита на страницы, так как каждая страница не вмещает больше 100 записей.
Скриншот страницы я приложил к теме.
Я нашел, как это исправить, но для этого мне нужно изменить значение объекта в frameset. Вот html код:
Проблема в том, что структура frame "view" имеет большую вложенность, вкратце вот такую:
И мне нужно изменить значение объекта dql_0_sizers_0_100 со 100 на 1000, то есть value = "1000".
Вот мой код:
Очень надеюсь на Вашу помощь!
Начал недавно изучать Autoit и уже получилось открыть сайт - авторизоваться - открыть нужное меню - написать команду - и запустить ее.
Но затем столкнулся с проблемой после отработки команды, я получаю таблицу с полями, но таблица разбита на страницы, так как каждая страница не вмещает больше 100 записей.
Скриншот страницы я приложил к теме.
Я нашел, как это исправить, но для этого мне нужно изменить значение объекта в frameset. Вот html код:
Код:
<html>
<frameset rows="0,0,0,100%,0" frameborder="0" border="0" framespacing="0" onunload="onUnload()" prev_rows="0,0,28,*,21" resized="true" prev_border="0" prev_frameborder="0" prev_framespacing="0">
<frame name="timeoutcontrol" id="MainEx_timeoutcontrol_0" src="/da/wdk/timeoutcontrol.jsp?Reload=1348814301756&__dmfFrameId=MainEx_timeoutcontrol_0&__dmfClientId=1348814108703" marginwidth="0" marginheight="0" frameborder="0" scrolling="no" noresize="false" resized="true" prev_noresize="" prev_marginheight="0" prev_marginwidth="0" prev_scrolling="no">
<frame name="residentucfinvoker" id="MainEx_residentucfinvoker_0" src="/da/component/residentucfinvoker?Reload=1348814301756&__dmfFrameId=MainEx_residentucfinvoker_0&__dmfClientId=1348814108703" marginwidth="0" marginheight="0" frameborder="0" scrolling="no" noresize="false" resized="true" prev_noresize="" prev_marginheight="0" prev_marginwidth="0" prev_scrolling="no">
<frame name="titlebar" id="MainEx_titlebar_0" src="/da/component/titlebar?Reload=1348814301756&__dmfFrameId=MainEx_titlebar_0&__dmfClientId=1348814108703" title="yyMSG_TITLEBARyy" frameborder="0" scrolling="no" noresize="false" resized="true" prev_noresize="" prev_marginheight="null" prev_marginwidth="null" prev_scrolling="no" marginheight="0" marginwidth="0">
<frame name="view" id="MainEx_view_0" src="/da/webtop/classic/classic.jsp?Reload=1348814301756&__dmfFrameId=MainEx_view_0&__dmfClientId=1348814108703" title="yyMSG_CLASSICVIEWyy" frameborder="0" scrolling="no" noresize="false" resized="true" prev_noresize="" prev_marginheight="null" prev_marginwidth="null" prev_scrolling="no" marginheight="0" marginwidth="0">
<frame name="messagebar" id="MainEx_messagebar_0" src="/da/component/messagebar?Reload=1348814301757&__dmfFrameId=MainEx_messagebar_0&__dmfClientId=1348814108703" title="yyMSG_MESSAGEBARyy" frameborder="0" scrolling="no" noresize="false" resized="true" prev_noresize="" prev_marginheight="null" prev_marginwidth="null" prev_scrolling="no" marginheight="0" marginwidth="0">
</frameset>
</html>
Проблема в том, что структура frame "view" имеет большую вложенность, вкратце вот такую:
Код:
<html>
<frameset>
<frameset>
<frame>
<html>
<frameset>
<frame>
<html>
<body>
<form>
<div>
<div>
<div>
<div>
<div>
<table>
<table>
<select name = "dql_0_sizer_0">
<option name = "dql_0_sizers_0_100" value = "100"> 100 </option>
</select>
</table>
</table>
</div>
</div>
</div>
</div>
</div>
</form>
</body>
</html>
</frame>
</frameset>
</html>
</frame>
</frameset>
</frameset>
</html>
Вот мой код:
Код:
<IE.au3>
#Include <GUIMenu.au3>
#Include <WinAPI.au3>
#Include <WindowsConstants.au3>
$oIE = _IECreate("http://10.124.8.103:7777/da/component/main?__dmfClientId=1348742122796&__dmfTzoff=-240",0,1,1)
$HWND = _IEPropertyGet($oIE, "hwnd")
WinSetState($HWND, "", @SW_MAXIMIZE)
_IEAction($oIE, "visible")
_IELoadWait($oIE)
Local $oInputs = _IETagNameGetCollection($oIE, "input")
For $oInput In $oInputs
MsgBox(0, "Form Input Type", "Form: " & $oInput.form.name & " Type: " & $oInput.type, 5)
Next
$oForm = _IEFormGetCollection($oIE,0)
$oLogin = _IEFormElementGetObjByName($oForm,"Login_username_0")
$oPass = _IEFormElementGetObjByName($oForm,"Login_password_0")
_IEFormElementSetValue($oLogin,"Login")
_IEFormElementSetValue($oPass,"Password")
$oButton = _IEGetObjByName($oIE, 'Login_loginButton_0')
_IEAction($oButton, 'click')
Sleep(7000)
MouseClick("left", 808, 250, 2)
;WinSetState($HWND, "", @SW_ENABLE)
Send ("+{Q}")
Sleep(3000)
;MouseClick("left", 281, 231, 2)
;Sleep(3000)
;Send ("Select * from dm_document")
;Send ("{TAB}")
;Sleep(1000)
;Send ("{ENTER}")
;_IELoadWait($oIE)
;Sleep(2000)
;$o_frame = _IEFrameGetCollection($oIE, 1)
;$o_form = _IEFormGetObjByName($o_frame, "loginentry")
;$o_login = _IEFormElementGetObjByName($o_form, "USERID")
;$o_password = _IEFormElementGetObjByName($o_form, "PASSW")
$oFrames = _IEFrameGetCollection($oIE)
$oNestedFrame = _IEFormGetObjByName($oFrames, "view")
$oFrames = _IEFrameGetCollection($oNestedFrame)
$oFrames = _IEFrameGetCollection($oFrames)
Local $iNumFrames = @extended
For $i = 0 To 2
Local $oFrame = _IEFrameGetCollection($oFrames, $i)
MsgBox(0, "Frame Info", _IEPropertyGet($oFrame, "locationurl"))
Next
Очень надеюсь на Вашу помощь!