Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » Как убедиться "о нажатии на кнопку"?

Ответить
Настройки темы
Как убедиться "о нажатии на кнопку"?

Новый участник


Сообщения: 49
Благодарности: 0

Профиль | Отправить PM | Цитировать


В цикле выполняется эта функция
Код: Выделить весь код
Func _Print($_sLink)
      _IENavigate($oIE, $sLink & $_sLink)  ; переходим по ссылке      
$oQuery = _IEGetObjById($oIE, "PrintFile")  ; получаем объект по ID      
_IEAction($oQuery, "click") ; кликаем на него      
_IELoadWait($oIE) ; ждем загрузки страницы в IE      
Sleep(100)  
EndFunc
но по разным причинам страницы не всегда открываются вовремя, чтобы функция успела нажать на кнопку, а Sleep не хочется увеличивать. Как можно отследить что кнопка нажата успешно и запускать открытие следующей страницы?

Отправлено: 15:06, 05-08-2012

 

Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


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

Отправлено: 00:24, 06-08-2012 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 49
Благодарности: 0

Профиль | Отправить PM | Цитировать


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

Последний раз редактировалось AlexVong, 06-08-2012 в 14:46.


Отправлено: 14:37, 06-08-2012 | #3


Аватара для madmasles

Ветеран


Сообщения: 812
Благодарности: 353

Профиль | Отправить PM | Цитировать


Цитата AlexVong:
А можно по подробнее, »
Дайте ссылку.

Отправлено: 15:22, 06-08-2012 | #4


Новый участник


Сообщения: 49
Благодарности: 0

Профиль | Отправить PM | Цитировать


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>  <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>


Отправлено: 21:37, 06-08-2012 | #5



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » Как убедиться "о нажатии на кнопку"?

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Программы - [решено] Как создать кнопку "новый текстовый документ"в проводнике-по аналогии с "Новая папка" sofon-emelin38 Microsoft Windows 7 23 10-02-2016 21:49
Разное - [решено] Подтверждение при нажатии кнопок "Завершение работы" и "Перезагрузка" amilak Microsoft Windows 7 32 06-09-2012 22:41
Драйвер - [решено] Зависает комп при нажатии кнопки "сон" на пульте ДУ + Windows 7 Anatolik_pc Microsoft Windows 7 6 15-01-2011 13:31
Разное - При нажатии кнопки "Обзор", программы "падают" Junos Microsoft Windows 2000/XP 9 02-02-2010 18:30
Разное - [решено] при нажатии кнопки "сменить пользователя" черный экран St33l Microsoft Windows 7 4 13-01-2010 19:57




 
Переход