Что нового

Получить данные из таблички формы

zan_vart

Новичок
Сообщения
17
Репутация
0
Добрый день, Уважаемые!

Есть веб ресурс с которого необходимо получит данные ,
потом загрузить на другой ресурс.

Авторизацию прохожу \несколько этапов\ но получить данные из таблицы формы ни как не могу
структура такая:
124ae244cbe3.jpg


Самое плохое ,что не понимаю технологию доступа к элементам страницы.
Думается ,что должна быть иерерхия от объекта к объекту, в реальности не вижу этого .

Код:
$oIE = _IECreate($sUrl, 0, 1, 1, 1)

$oForm = _IEFormGetCollection($oIE, 0)
$oUsername = _IEFormElementGetObjByName($oForm, "username") ; change name !
$oPassword = _IEFormElementGetObjByName($oForm, "password_input") ; change name !
_IEFormElementSetValue($oUsername, $sUsername)
_IEFormElementSetValue($oPassword, $sPassword)
_IEFormSubmit($oForm)

$oFrame = _IEFormGetCollection($oIE, "unicorn_form")
$oUrl = _IEGetObjById($oFrame, "unicorn_form_url")
_IEFormElementSetValue($oUrl, $sApplOpl)
$oButton = _IEGetObjById($oFrame, "browse_text")
_IEAction($oButton,'click')
_IELoadWait ($oFrame)

$oForm = _IEFormGetCollection($oIE, 0)
$oUsername = _IEFormElementGetObjByName($oForm, "username") ; change name !
$oPassword = _IEFormElementGetObjByName($oForm, "password") ; change name !
$aContinue = _IEFormElementGetObjByName($oForm,"Continue")
_IEFormElementSetValue($oUsername, $sUsername)
_IEFormElementSetValue($oPassword, $sPassword)
_IEAction($aContinue, 'click')
_IELoadWait ($oForm);

$oFrame = _IEFrameGetCollection($oIE,"main")
$oFormLoc = _IEFormGetCollection($oFrame,"uniform")
$oTable1 = _IEGetObjById($oFormLoc,'Unitable')
$oLinks1 = _IETableGetCollection($oTable1)


в итоге должен получить лист объектов, но получаю только один.

Сама структура таблицы:

Код:
<TR style="FONT-FAMILY: Tahoma; FONT-SIZE: 12px" id=row460053 bgColor=#b8f057 group=""><TD class="ZeroPadding "><INPUT id=unirowid class=Checkbox onclick="SelectRow( this )" name=unirowid value=" 460053" type=checkbox> </INPUT></TD>
<TD><A style="FONT-FAMILY: Tahoma; FONT-SIZE: 12px" href="javascript:OpenModal(460053,'workorder', true, false, 'status=0;dialogWidth=1050px;dialogHeight=860px;resizable=1');">460053</A></TD>
<TD>
<CENTER><A href="javascript:OpenWorkOrderAll( '460053' );"><IMG border=0 alt="Просмотр" src="-CSCO-31--img/admin/edit32.gif" width=16 height=16></A></CENTER></TD>
<TD>
<DIV id=WONameShow460053><SPAN style="CURSOR: hand" onmouseover=ShowWOInfluence(460053); onmouseout=HideWOInfluence(); outertext="ннннннннн ">ппппппппп</SPAN></DIV></TD>
<TD>ввввввввввв</TD>
<TD class=" Wrap">паааааааа</TD>
<TD>12.03.2014 23:00</TD>
<TD>14.03.2014 18:00</TD>
<TD>
<DIV id=WOEditedShow460053><SPAN style="CURSOR: hand" onmouseover=ShowWODetails(460053); onmouseout=HideWODetails();><A style="FONT-FAMILY: Tahoma; FONT-SIZE: 12px" href="javascript:OpenModal('460053', 'workorder', true, false, 'status=0;dialogwidth=800px;dialogheight=720px;resizable=1', 'pg_focustab=historylst');">04.03.2014 9:44:01</A></SPAN></DIV></TD>
<TD class=" Wrap"> вввввввввв</TD></TR>

Подскажите как доступиться до элементов таблицы.
 
Автор
Z

zan_vart

Новичок
Сообщения
17
Репутация
0
Собственно, в результате изысканий,
добрался до таблички
Код:
$oFrame = _IEFrameGetCollection($oIE,1)
$oForm = _IEFormGetObjByName($oFrame,'uniform')
$oTable1 = _IEGetObjById($oForm,'ElementContent')
$oTable2 = _IEGetObjById($oTable1,'Table')
$oTable3 = _IEGetObjById($oTable2,'TableHolder')
$oTable4 = _IEGetObjById($oTable3,'Unitable')
$oTables = _IETableGetCollection($oTable4,0)
Local $aTableData = _IETableWriteToArray($oTables) ; гузим таблицу в массив

;загружаем конкретную строчку для детальной выгрузки
$oTmpObj = _IEGetObjById($oTable4,'row462428')


   $oLinks1 = _IELinkGetCollection($oTmpObj)
   For $oLink1 In $oLinks1
      If StringInStr(_IEPropertyGet($oLink1, "outerhtml"), "Просмотр") Then
         $oLink1.fireEvent("onmousedown")
         $oLink1.fireEvent("onmouseup")
         _IEAction($oLink1,'click')
         _IELoadWait($oIE)
         ExitLoop
      EndIf
   Next


загрузил данные , как и подозревал, тупо разбираем по иерерхии HTML.

Тыкнул кнопочку со скриптиком , открылось дочернее окно
\спасибо прикрепленной теме- Помогите кликнуть на хитрую кнопку под <span>\

осталось получить доступ к дочернему окну, читаю форум....
 

MaximK

Знающий
Сообщения
33
Репутация
5
Скиньте ссылку на сайт где табличка
 
Автор
Z

zan_vart

Новичок
Сообщения
17
Репутация
0
Сайт является внутренним ресурсом компании, потому и вписывал белеберду
во внутренности таблички.
 
Автор
Z

zan_vart

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

Код:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "-//W3C//DTD HTML 4.0 Transitional//EN">
<html >
  <head >
    <title >Работы</title>
    <script  id='CSCO_GHOST' src="/+webvpn+/toolbar.js"></script><script  id='CSCO_GHOST' src="/+CSCOL+/cte.js?14033"></script><script id='CSCO_GHOST' src="/+CSCOE+/apcf"></script><script id='CSCO_GHOST'>CSCO_seppuku();CSCO_ITB_attach_event();$CSCO_cookie_ver=CSCO_WebVPN['get_cookie_version'](); if($CSCO_cookie_ver.length>0){document.write('<script id=CSCO_GHOST src=/+CSCOE+/cookie?v='+$CSCO_cookie_ver+'></S'+'CRIPT>');}</script>
<script  id='CSCO_GHOST' src="/+CSCOE+/session.js"></script><script  id='CSCO_GHOST'>CSCO_seppuku();sessionCheck('/+CSCOE+/ping.html'); setInterval("sessionCheck('/+CSCOE+/ping.html')",60000);setInterval("sessionCookieCheck()",5000);</script><link rel="stylesheet" type="text/css" media="all" href="-CSCO-33--css/common.css" />
    <link rel="stylesheet" type="text/css" media="all" href="-CSCO-33--js/calendar/calendar-blue.css" />
    <link rel="stylesheet" type="text/css" href="-CSCO-33--css/table_wo_list.css" />
    <script  type="text/javascript" src="-CSCO-36--js/common.js" ></script ><script id='CSCO_GHOST' language='JavaScript'>CSCO_seppuku();CSCO_WebVPN["flush"]();</script>
    <script  type="text/javascript" src="-CSCO-36--js/effects/prototype.js" ></script ><script id='CSCO_GHOST' language='JavaScript'>CSCO_seppuku();CSCO_WebVPN["flush"]();</script>
    <script  type="text/javascript" src="-CSCO-36--js/effects/scriptaculous.js" ></script ><script id='CSCO_GHOST' language='JavaScript'>CSCO_seppuku();CSCO_WebVPN["flush"]();</script>
    <script  type="text/javascript" src="-CSCO-36--js/table.js" ></script ><script id='CSCO_GHOST' language='JavaScript'>CSCO_seppuku();CSCO_WebVPN["flush"]();</script>
    <script  type="text/javascript" src="-CSCO-36--js/calendar/calendar.js" ></script ><script id='CSCO_GHOST' language='JavaScript'>CSCO_seppuku();CSCO_WebVPN["flush"]();</script>
    <script  type="text/javascript" src="-CSCO-36--js/calendar/lang/calendar-ru.js" ></script ><script id='CSCO_GHOST' language='JavaScript'>CSCO_seppuku();CSCO_WebVPN["flush"]();</script>
    <script  type="text/javascript" src="-CSCO-36--js/calendar/calendar-setup.js" ></script ><script id='CSCO_GHOST' language='JavaScript'>CSCO_seppuku();CSCO_WebVPN["flush"]();</script>
    <script  type="text/javascript" src="-CSCO-36--js/DataCheck.js" ></script ><script id='CSCO_GHOST' language='JavaScript'>CSCO_seppuku();CSCO_WebVPN["flush"]();</script>
    <script  type="text/javascript" src="-CSCO-36--js/htmleditor/fckeditor.js" ></script ><script id='CSCO_GHOST' language='JavaScript'>CSCO_seppuku();CSCO_WebVPN["flush"]();</script>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
    <style type="text/css" >
    </style>
    <script  type="text/javascript" language="javascript" >
					
					function HotKeys()
					{
						if( !event.altKey )
							return;
						
						var s;
						
					}
				</script><script id='CSCO_GHOST' language='JavaScript'>CSCO_seppuku();CSCO_WebVPN["flush"]();</script>
  </head>
  <body onkeydown="CheckKey( event )" onmousedown="CheckMouseKey( event )" onkeyup="HotKeys()" >
    <form id="uniform" action="-CSCO-30--workorder_list.wide" method="post" >
      <input type="hidden" id="pg_page" name="pg_page" value="workorder_list" />
      <input type="hidden" id="pg_base_href" name="pg_base_href" value="http://DDML/" />
      <input type="hidden" id="pg_datetime_now" name="pg_datetime_now" value="17.03.2014 16:16" />
      <input type="hidden" id="pg_currentpage" name="pg_currentpage" value="1" />
      <input type="hidden" id="pg_where" name="pg_where" value="(StatusID NOT IN (7) OR (StatusID IN (7) AND CreatorID=401190))" />
      <input type="hidden" id="pg_filterwhere" name="pg_filterwhere" value="1=1  and statusid in ( '1','2' ) and workplaceid in ( '4','1000027','1000025','1000090','1000021','1000060','1000022','1000023','1000020','1000024','1000089','1000026','1000018','1000019' )" />
      <input type="hidden" id="pg_searchstring" name="pg_searchstring" value="" />
      <input type="hidden" id="pg_predefinedfilter" name="pg_predefinedfilter" value="425990" />
      <input type="hidden" id="pg_disablefilter" name="pg_disablefilter" value="false" />
      <input type="hidden" id="pg_visiblecolumns" name="pg_visiblecolumns" value="id,menu,name,statusname,workplacename,datebegin,dateend,edited,customername" />
      <input type="hidden" id="pg_groupcolumns" name="pg_groupcolumns" value="" />
      <input type="hidden" id="pg_sortcolumns" name="pg_sortcolumns" value="datebegin desc" />
      <input type="hidden" id="pg_mode" name="pg_mode" value="view" />
      <input type="hidden" id="pg_select" name="pg_select" value="" />
      <input type="hidden" id="pg_windowmode" name="pg_windowmode" value="normal" />
      <input type="hidden" id="pg_pkname" name="pg_pkname" value="Id" />
      <input type="hidden" id="pg_pkvalue" name="pg_pkvalue" value="" />
      <input type="hidden" id="pg_isexternal" name="pg_isexternal" value="" />
      <input type="hidden" id="pg_isexcel" name="pg_isexcel" value="" />
      <input type="hidden" id="pg_isdynamicload" name="pg_isdynamicload" value="" />
      <input type="hidden" id="pg_isfirsttime" name="pg_isfirsttime" value="yes" />
      <input type="hidden" id="pg_groupid" name="pg_groupid" value="" />
      <input type="hidden" id="pg_userid" name="pg_userid" value="401190" />
      <input type="hidden" id="pg_updatedFilterWhere" name="pg_updatedFilterWhere" value="1=1  AND ( statusid in ( '1','2' )  )  AND ( workplaceid in ( '4','1000027','1000025','1000090','1000021','1000060','1000022','1000023','1000020','1000024','1000089','1000026','1000018','1000019' ) ) " />
      <input type="hidden" id="pg_pagecount" name="pg_pagecount" value="4" />
      <input type="hidden" id="pg_rowcount" name="pg_rowcount" value="187" />
      <input type="hidden" id="pg_pagesize" name="pg_pagesize" value="50" />
      <input type="hidden" id="PageTitle" name="PageTitle" value="Плановые работы" />
      <div id="ElementContent" >
        <script  type="text/javascript" >window.onload = InitializeTable;</script><script id='CSCO_GHOST' language='JavaScript'>CSCO_seppuku();CSCO_WebVPN["flush"]();</script>
        <iframe id="iframeinline" frameborder="0" >
        </iframe>
        <div id="Table" >
          <div id="TableTop" >
            <div id="TableHeader" >
              <img src="-CSCO-31--img/admin/_.gif" width="1" height="32" align="absmiddle" border="0" /><img src="-CSCO-31--img/admin/work32.gif" width="32" height="32" align="absmiddle" hspace="10" /></div>
            <div id="Toolbar" >
              <nobr >
                <a class="Button" href="javascript:CreateWorkOrder();" >
                  <img width="1" src="-CSCO-31--img/admin/_.gif" />Создать</a>
              </nobr>
              <nobr >
                <a class="Button" href="javascript:DeleteWorkOrders();" >
                  <img width="1" src="-CSCO-31--img/admin/_.gif" />Удалить</a>
              </nobr>
              <nobr >
                <a class="Button" href="javascript:EndWorkOrders();" id="" >
                  <img width="1" src="-CSCO-31--img/admin/_.gif" />Завершить</a>
              </nobr>
              <nobr >
                <a class="Button" href="javascript:SelectGroup();" id="" >
                  <img width="1" src="-CSCO-31--img/admin/_.gif" />Объединить в группу</a>
              </nobr>
              <nobr >
                <a class="Button" href="javascript: ChangeReload(this);" id="reload" >
                  <img width="1" src="-CSCO-31--img/admin/_.gif" />Установить автоматическое обновление</a>
              </nobr>
              <nobr >
                <a class="Button" href="javascript: Sending();" id="" >
                  <img width="1" src="-CSCO-31--img/admin/_.gif" />Рассылка</a>
              </nobr>
              <nobr >
                <a class="Button" href="javascript: ExportExcel();" id="" >
                  <img width="1" src="-CSCO-31--img/admin/_.gif" />Excel</a>
              </nobr>
              <nobr >
                <a class="Button" href="javascript: GetData();" id="" >
                  <img width="1" src="-CSCO-31--img/admin/_.gif" />Обновить</a>
              </nobr>
              <nobr >
                <a class="Button" href="javascript:RestoreWorkOrder();" id="" >
                  <img width="1" src="-CSCO-31--img/admin/_.gif" />Восстановить</a>
              </nobr>
            </div>
            <div id="ToolbarText" >
				№: <input type="text" style="width: 60px;" id="fldid" name="fldid" onkeydown="CheckEnterKey( event );" /> <a href="javascript:QuickLoadWO()" style="font-family: Trebuchet MS; font-size: 14px;" >Перейти</a><div id="denywo" style="display: none;position: relative; color:red;" ><img src="-CSCO-31--img/admin/1.jpg" width="25" height="16" align="absmiddle" hspace="2" /><a href="" style="color:red;" id="denywolink" target="_blank" >Запрет на ПР</a></div><a href="https://ddddd.ru/+CSCO+0h756767633A2F2F626379++/news.htm" style="color:DarkOrange;text-decoration:none;" target="_blank" ><b >DDDDDDDDDDDDDD</b></a></div>
            <div id="SearchToolbar" >
              <p >
                <a class="Button" href="javascript:ShowFilter()" id="btnfilter" >
                  <img width="1" src="-CSCO-31--img/admin/_.gif" />Фильтр</a> 
							<a class="Button" href="javascript:ClearFilter()" ><img width="1" src="-CSCO-31--img/admin/_.gif" />Без фильтра</a> 
							<a class="Button" href="javascript:ShowSaveSchema()" title="Сохранить текущие настройки фильтра" ><img width="1" src="-CSCO-31--img/admin/_.gif" />Сохранить фильтр</a><div id="PredefinedFilter" ><select id="fltpredefinedfilters" name="fldpredefinedfilters" ><option >Выберите фильтр</option></select><a class="Button" href="javascript:ApplySchema(uniform.fltpredefinedfilters.value)" ><img width="1" src="-CSCO-31--img/admin/_.gif" />Применить фильтр</a><a class="Button" href="javascript:DeleteFilter(uniform.fldpredefinedfilters.value)" ><img width="1" src="-CSCO-31--img/admin/_/gif" />Удалить фильтр</a></div></p>
            </div>
          </div>
          <div id="BeforeTable" ><div id="WODetailsOnEdited" style="display: none;position:absolute;top:0;left:0;background: #fefefe;border: 1px solid #c1c1c1;padding: 5px;" onmouseover="tdhide=false;" onmouseout="HideWODetails();" ></div><div id="WOInfluenceOnName" style="display: none;position:absolute;top:0;left:0;background: #fefefe;border: 1px solid #c1c1c1;padding: 5px;" onmouseover="tdhide=false;" onmouseout="HideWOInfluence();" ></div></div>
          <div id="QuickFilterToolbar" >
            <div id="QuickFilter" >
              <img src="-CSCO-31--img/admin/filter.gif" width="16" height="16" />
              <span id="lblqfltname" >Предмет работ</span>
              <input type="text" style="width: 91px;" onchange="QuickFilterFieldChanged( this )" id="qfltname" value="" onfocus="SetFocus(this)" onblur="LoseFocus(this)" >
              </input>
              <span id="lblqfltbillingid" >BillingID</span>
              <input type="text" style="width: 91px;" onchange="QuickFilterFieldChanged( this )" id="qfltbillingid" value="" onfocus="SetFocus(this)" onblur="LoseFocus(this)" >
              </input>
              <span id="lblqfltscala" >Scala</span>
              <input type="text" style="width: 91px;" onchange="QuickFilterFieldChanged( this )" id="qfltscala" value="" onfocus="SetFocus(this)" onblur="LoseFocus(this)" >
              </input>
              <span id="InQuickFilter" >
				Начало с:
				<input type="text" style="width: 91px;" onchange="" id="quickfilter1datebegin" value="" onfocus="SetFocus(this)" onblur="LoseFocus(this)" />
				 <img src="-CSCO-31--img/admin/calendar.gif" width="16" style="cursor:hand;" height="16" align="absmiddle" id="qclndr1datebegin" />
				  по:
				<input type="text" style="width: 91px;" onchange="" id="quickfilter2datebegin" value="" onfocus="SetFocus(this)" onblur="LoseFocus(this)" />
				 <img src="-CSCO-31--img/admin/calendar.gif" width="16" style="cursor:hand;" height="16" align="absmiddle" id="qclndr2datebegin" /></span>
			 <button onclick="javascript:ChangeFilter()" id="applyquickfilter" >Применить</button> 
		</div>
            <input type="text" width="150" id="searchstring" onfocus="SetFocus(this)" onblur="LoseFocus(this)" />
            <a href="javascript:PerformSearch()" >
              <img width="1" src="-CSCO-31--img/admin/_.gif" />Поиск</a>
          </div>
          <div id="TableHolder" >
            <table width="100%" border="0" id="Unitable" cellspacing="0" cellpadding="0" >
              <tr >
                <td width="1%" class="ZeroPadding Header" >
                  <input type="checkbox" title="Select all" id="selectall" onclick="SelectAll( this )" />
                </td>
                <td width="1%" class="Header" >
                  <nobr >
                    <a class="HeaderLink" href="javascript:OrderBy( 'id asc' )" > ID</a>
                  </nobr>
                </td>
                <td width="1%" class="Header" > Меню</td>
                <td width="15%" class="Header" >
                  <nobr >
                    <a class="HeaderLink" href="javascript:OrderBy( 'name asc' )" > Предмет работ</a>
                  </nobr>
                </td>
                <td width="5%" class="Header" >
                  <nobr >
                    <a class="HeaderLink" href="javascript:OrderBy( 'statusname asc' )" > Статус</a>
                  </nobr>
                </td>
                <td width="5%" class="Header Wrap" >
                  <nobr >
                    <a class="HeaderLink" href="javascript:OrderBy( 'workplacename asc' )" > Место проведения</a>
                  </nobr>
                </td>
                <td width="2%" class="HeaderSorted" >
                  <nobr >
                    <a class="HeaderLink" href="javascript:OrderBy( 'datebegin asc' )" > Начало<img src="-CSCO-31--img/admin/sort_desc2.gif" border="0" hspace="2" align="absmiddle" alt="Descending" /></a>
                  </nobr>
                </td>
                <td width="2%" class="Header" >
                  <nobr >
                    <a class="HeaderLink" href="javascript:OrderBy( 'dateend asc' )" > Окончание</a>
                  </nobr>
                </td>
                <td width="2%" class="Header" >
                  <nobr >
                    <a class="HeaderLink" href="javascript:OrderBy( 'edited asc' )" > Изменение</a>
                  </nobr>
                </td>
                <td width="5%" class="Header Wrap" >
                  <nobr >
                    <a class="HeaderLink" href="javascript:OrderBy( 'customername asc' )" > Заказчик</a>
                  </nobr>
                </td>
              </tr>
              <tr group="" id="row462885" bgcolor="#B8F057" style="font-family: Tahoma; font-size: 12px;" >
                <td class="ZeroPadding " >
                  <input type="checkbox" class="Checkbox" id="unirowid" name="unirowid" onclick="SelectRow( this )" value=" 462885" >
                  </input>
                </td>
                <td > <a href="javascript:OpenModal(462885,'workorder', true, false, 'status=0;dialogWidth=1050px;dialogHeight=860px;resizable=1');" style="font-family: Tahoma; font-size: 12px;" >462885</a></td>
                <td > <center ><a href="javascript:OpenWorkOrderAll( '462885' );" ><img src="-CSCO-31--img/admin/edit32.gif" width="16" height="16" border="0" alt="Просмотр работы" /></a></center></td>
                <td > <div id="WONameShow462885" ><span onmouseover="ShowWOInfluence(462885);" onmouseout="HideWOInfluence();" style="cursor:hand;"

Код:
$oForm = _IEFormGetCollection($oIE, 0)
$oUsername = _IEFormElementGetObjByName($oForm, "username") ; change name !
$oPassword = _IEFormElementGetObjByName($oForm, "password") ; change name !
$aContinue = _IEFormElementGetObjByName($oForm,"Continue")
_IEFormElementSetValue($oUsername, $sUsername)
_IEFormElementSetValue($oPassword, $sPassword)
_IEAction($aContinue, 'click')
_IELoadWait ($oIE);

for $iPage=2 to 5

   $oFrame = _IEFrameGetCollection($oIE,1)
   $oForm = _IEFormGetObjByName($oFrame,'uniform')
   $oTable1 = _IEGetObjById($oForm,'ElementContent')
   $oTable2 = _IEGetObjById($oTable1,'Table')
   $oTable3 = _IEGetObjById($oTable2,'TableHolder')
   $oTable4 = _IEGetObjById($oTable3,'Unitable')
   $oTables = _IETableGetCollection($oTable4,0)
   Local $aTableData = _IETableWriteToArray($oTables) ; гузим таблицу в массив



 For $j = 1 To UBound($aTableData,2) - 1

   $sTmpStr = $aTableData[1][$j]

   _FileWriteLog($hFile, $sTmpStr)

   ;загружаем конкретную работу
   $oTmpObj = _IEGetObjById($oTable4,"row"&$sTmpStr)

   ; tag for search
   $sTmpStr = "javascript:OpenWorkOrderAll( '" & $sTmpStr & "' );"

   ; finging the detail button in object
   $oLinks1 = _IELinkGetCollection($oTmpObj)
   For $oLink1 In $oLinks1
	  If StringInStr(_IEPropertyGet($oLink1,"outerhtml"),$sTmpStr) Then
         ; push detail button
		 $oLink1.fireEvent("onmousedown")
         $oLink1.fireEvent("onmouseup")
         _IEAction($oLink1,'click')
         _IELoadWait($oIE)
 	      Beep(300,300)
         ExitLoop
      EndIf
   Next


   Sleep(2000)
   ; find the child window
   $oChildIE = _IEAttach("Плановая работа")
   if @Error = 0 Then ; the child window found
;~ 	  Beep(500,500)
     _IELoadWait($oChildIE)
	  $oFormChld = _IEFormGetObjByName($oChildIE,'uniform')
	  $sTxt = _IEPropertyGet($oFormChld, "outertext") & @CRLF
	  _FileWriteLog($hFile, '*********'&$sTxt) ; Write result to the file
	  _IEQuit($oChildIE)
;~

   EndIf ; child window operations


Next ; Load detail from page

   ; Jump to next page
   If $iPage > 4 then ExitLoop

   ;select other page
   $oTable4 = _IEGetObjById($oTable3,'PageLister')
;   ConsoleWrite("Link count "&@extended)

   $sPageHandle = '"javascript:ChangePage( '&$iPage&' );"'
   ;ConsoleWrite($sPageHandle)

   local $oLinks1 = _IELinkGetCollection($oTable4)
   For $oLink1 In $oLinks1
	  If StringInStr(_IEPropertyGet($oLink1,"outerhtml"),$sPageHandle) Then
		 ; push detail button
		 $oLink1.fireEvent("onmousedown")
		 $oLink1.fireEvent("onmouseup")
		 _IEAction($oLink1,'click')
		 _IELoadWait($oFrame)
		 Sleep(10000)
		 Beep(200,300)
		 ExitLoop
	  EndIf
   Next


Next


FileClose($hFile) ; Close the filehandle to release the file.


Остается вопрос , есть ли варианты , как по другому дождаться откытия дочернего окна ,
кроме как тупым ожидаением или бесконечным циклом /напрягают они меня исторически из других языков/ ?
Дочька ведь не сразу появляется...
в этом месте ->
Код:
Sleep(2000)
   ; find the child window
   $oChildIE = _IEAttach("Плановая работа")


код отладочный, поэтому не пинайте по стилю, бипам и принтам на консоль
 
Автор
Z

zan_vart

Новичок
Сообщения
17
Репутация
0
Крайний скрипт выгрузки данных

Код:
local $avOPL[0]


Local $hFile = FileOpen("D:\ParseOPL\opl"&@YEAR&@MON&@MDAY&@HOUR&@MIN&@SEC&".out", 1)


$oIE = _IECreate($sUrl, 0, 1, 1, 1)
;Sleep(2000)
$oForm = _IEFormGetCollection($oIE, 0)
$oUsername = _IEFormElementGetObjByName($oForm, "username") ; change name !
$oPassword = _IEFormElementGetObjByName($oForm, "password_input") ; change name !
_IEFormElementSetValue($oUsername, $sUsername)
_IEFormElementSetValue($oPassword, $sPassword)
_IEFormSubmit($oForm)
_IELoadWait ($oIE)

_IENavigate($oIE,$sUrlOpl) ; прямой переход
Sleep(3000)


$oForm = _IEFormGetCollection($oIE, 0)
$oUsername = _IEFormElementGetObjByName($oForm, "username") ; change name !
$oPassword = _IEFormElementGetObjByName($oForm, "password") ; change name !
$aContinue = _IEFormElementGetObjByName($oForm,"Continue")
_IEFormElementSetValue($oUsername, $sUsername)
_IEFormElementSetValue($oPassword, $sPassword)
_IEAction($aContinue, 'click')
_IELoadWait ($oIE);



; loaging OPL list

for $iPage=2 to 10

   $oFrame = _IEFrameGetCollection($oIE,1)
   $oForm = _IEFormGetObjByName($oFrame,'uniform')
   $oTable1 = _IEGetObjById($oForm,'ElementContent')
   $oTable2 = _IEGetObjById($oTable1,'Table')
   $oTable3 = _IEGetObjById($oTable2,'TableHolder')
   $oTable4 = _IEGetObjById($oTable3,'Unitable')
   $oTables = _IETableGetCollection($oTable4,0)
   Local $aTableData = _IETableWriteToArray($oTables) ; гузим таблицу в массив


   For $j = 1 To UBound($aTableData,2) - 1
	  _ArrayAdd($avOPL,$aTableData[1][$j])
   Next


 ; Jump to next page

   ;select other page
   $oTable4 = _IEGetObjById($oTable3,'PageLister')
;   ConsoleWrite("Link count "&@extended)

   $sPageHandle = '"javascript:ChangePage( '&$iPage&' );"'
   ;ConsoleWrite($sPageHandle)

   $bHavePage = False

   local $oLinks1 = _IELinkGetCollection($oTable4)
   For $oLink1 In $oLinks1
	  If StringInStr(_IEPropertyGet($oLink1,"outerhtml"),$sPageHandle) Then
		 ; push detail button
		 $bHavePage = True
		 $oLink1.fireEvent("onmousedown")
		 $oLink1.fireEvent("onmouseup")
		 _IEAction($oLink1,'click')
		 _IELoadWait($oFrame)
		 Sleep(10000)
		 Beep(200,300)
		 ExitLoop
	  EndIf
   Next

   If Not $bHavePage then ExitLoop

Next




    For $j = 1 To UBound($avOPL) - 1

	  $sTmpStr = $avOPL[$j] ; OPL Number

      $oTable3 = _IEGetObjById($oTable2,'ToolbarText')
      $oFieldID = _IEGetObjById($oTable3,'fldid')
      _IEFormElementSetValue($oFieldID,$sTmpStr) ; set OPL num for detail

	  ; tag for search
	  $sTmpStr = '"javascript:QuickLoadWO()"'

      ; finging the detail button in object
      $oLinks1 = _IELinkGetCollection($oTable3)
      For $oLink1 In $oLinks1
		  If StringInStr(_IEPropertyGet($oLink1,"outerhtml"),$sTmpStr) Then
            ; push detail button
			 $oLink1.fireEvent("onmousedown")
            $oLink1.fireEvent("onmouseup")
            _IEAction($oLink1,'click')
            _IELoadWait($oIE)
			;Beep(300,300)
            ExitLoop
		  EndIf
	  Next

     Sleep(2000)
     ; find the child window
     $oChildIE = _IEAttach("работа")
     if @Error = 0 Then ; the child window found
       _IELoadWait($oChildIE)
	   $oFormChld = _IEFormGetObjByName($oChildIE,'uniform')
	   $sTxt = _IEPropertyGet($oFormChld, "outertext") & @CRLF
	   _FileWriteLog($hFile, '*********'&$sTxt) ; Write result to the file
	   _IEQuit($oChildIE)
     EndIf ; child window operations

Next


_IEQuit($oIE)
FileClose($hFile) ; Close the filehandle to release the file.
Exit


Все же остается вопрос , есть ли варианты , как по другому дождаться откытия дочернего окна, кроме как тупым ожидаением или бесконечным циклом ?
Дочька ведь не сразу появляется...
в этом месте ->
Код:
Sleep(2000)
   ; find the child window
   $oChildIE = _IEAttach("работа")
 
Верх