Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   Как убедиться "о нажатии на кнопку"? (http://forum.oszone.net/showthread.php?t=240018)

AlexVong 05-08-2012 15:06 1965046

Как убедиться "о нажатии на кнопку"?
 
В цикле выполняется эта функция
Код:

Func _Print($_sLink)
      _IENavigate($oIE, $sLink & $_sLink)  ; переходим по ссылке     
$oQuery = _IEGetObjById($oIE, "PrintFile")  ; получаем объект по ID     
_IEAction($oQuery, "click") ; кликаем на него     
_IELoadWait($oIE) ; ждем загрузки страницы в IE     
Sleep(100) 
EndFunc

но по разным причинам страницы не всегда открываются вовремя, чтобы функция успела нажать на кнопку, а Sleep не хочется увеличивать. Как можно отследить что кнопка нажата успешно и запускать открытие следующей страницы?

Iska 06-08-2012 00:24 1965259

Не полагаться на «IE.au3», а самому обрабатывать .readyState и .Busy объекта автоматизации потребное число раз для конкретной страницы.

AlexVong 06-08-2012 14:37 1965518

Iska, А можно по подробнее, в этом еще новичек...
На каждой странице есть кнопка
Код:

<a onclick="getFvt('010');return false;" id="PrintFile" tabindex="15" href="javascript:__doPostBack('PrintFile','')"
после нажатия на которую формируется отчет и отправляется на печать. Визуально на странице ни каких изменений не происходит, на мгновенье после нажатия появляется всплывающая надпись "Ожидайте" и все., таких страниц оч.много и Sleep зачастую или очень долго обрабатывает, а при маленьком значении не успевает нажатьна кнопку.

madmasles 06-08-2012 15:22 1965542

Цитата:

Цитата AlexVong
А можно по подробнее, »

Дайте ссылку.

AlexVong 06-08-2012 21:37 1965759

madmasles, ссылку не могу, сайт в локальной сети, доступа из сети к нему нет. Могу только код страницы:
HTML код:



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>
        Схема отчета
</title>
    <base target="_self" />
    <style>
        .webservice
        {
            behavior: url(/Common/WebService/js/WebService.htc);
        }
    </style>
    <meta name="DownloadOptions" content="nosave" /><link href="CSS/AppCSS.css" type="text/css" rel="stylesheet" /><link href="/Common/WebTab/WebTab.css" type="text/css" rel="stylesheet" />
    <script src="/Common/WebTab/WebTab.js" language="javascript" type="text/jscript"></script>
    <script type="text/javascript" src="/Common/Script/bazaIe.js"></script>
    <script language="javascript" type="text/jscript">
        function getCookie(par) {
            var pageCookie = document.cookie;
            var pos = pageCookie.indexOf(par + '=');
            if (pos != -1) {
                var start = pos + par.length + 1;
                var end = pageCookie.indexOf(';', start);
                if (end == -1) end = pageCookie.length;
                var value = pageCookie.substring(start, end);
                value = unescape(value);
                return value;
            }
        }
        //
        var doc_ref = '';
        window.attachEvent("onload", initServrice);
        function onChangeTab() {
        }
        function initServrice() {
            var port = (location.port != "") ? (":" + location.port) : ("");
            document.all.webService.useService(location.protocol + "//" + location.hostname + port + "/bazaroot/docinput/DocService.asmx?wsdl", "Doc");
            var printTrnModel = getCookie("prnModel");
            if (printTrnModel) {
                document.getElementById("cbPrintTrnModel").checked = (printTrnModel==1)?(true):(false);
            }
        }
        function setCookie(name, val)
        {
            var date = new Date((new Date()).getTime() + 24 * 3600000);
            document.cookie = name + '=' + val + "; expires=" + date.toGMTString();
        }
        function getTicketFile(ref) {
            if ("" != ref)
                document.all.webService.Doc.callService(onPrint, "GetFileForPrint", ref, document.getElementById("cbPrintTrnModel").checked);
            return false;
        }
        function onPrint(result) {
            if (!getError(result)) return;
            bazaie$print(result.value);
        }
        function getError(result, modal) {
            if (result.error) {
                if (window.dialogArguments || parent.frames.length == 0 || modal) {
                    window.showModalDialog("dialog.aspx?type=err", "", "dialogWidth:800px;center:yes;edge:sunken;help:no;status:no;");
                }
                else
                    location.replace("dialog.aspx?type=err");
                return false;
            }
            return true;
        }
    </script>
</head>
<body onload="InitTabs();">
    <form name="Form1" method="post" action="default.aspx?ref=0" id="Form1">
<div>
<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />
<input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wUKMTI5MzAw" />
</div>

<script type="text/javascript">
//
var theForm = document.forms['Form1'];
if (!theForm) {
    theForm = document.Form1;
}
function __doPostBack(eventTarget, eventArgument) {
    if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
        theForm.__EVENTTARGET.value = eventTarget;
        theForm.__EVENTARGUMENT.value = eventArgument;
        theForm.submit();
    }
}
//]]>
</script>


    <table id="tbMain" cellpadding="0" cellspacing="0" border="0">
        <tr>
            <td style="padding-bottom: 10px; border-bottom: black 1px solid;">
                <span id="lb_refer" class="title">№ Отчета- </span>
                <span id="lb_title" class="title">0001</span>
            </td>
            <td style="padding-bottom: 10px; border-bottom: black 1px solid;" align="right">
                <input name="cbPrintTrnModel" type="checkbox" id="cbPrintTrnModel" style="width: auto; border-width: 0;" onclick="setCookie('prnModel', ((this.checked) ? (1) : (0)))" title="Схема" /><label for="cbPrintTrnModel"
                        style="white-space: nowrap;" title="схема">
схема</label>&nbsp;
                <a onclick="getTicketFile('0001');return false;" id="PrintFile" tabindex="3" href="javascript:__doPostBack('PrintFile','')" style="color:Black;background-color:WhiteSmoke;font-weight:normal;">Печать</a>
            </td>
        </tr>
    </table>
    <div id="webtab" style="width: 100%; height: 100%">
    </div>
    <div class="webservice" id="webService" showprogress="true">
    </div>
  </body>
</html>



Время: 18:18.

Время: 18:18.
© OSzone.net 2001-