Что нового

Взаимодействие с APSX

JIereHga2010

Новичок
Сообщения
68
Репутация
0
Здравствуйте ув. Форумчане :IL_AutoIt_1:
Подскажите пожалуйста, в чем может быть причина, при которой Autoit не взаимодействует с страницами браузера в формате ASPX

Для примера:
Код:
#include <IE.au3>

$oIE = _IECreate ('www.какоя_то_страница.ASPX')

$oButton = _IEGetObjById ($oIE, 'ID объекта кнопки')
MsgBox (0, '', @error)


Так вот, выдает ошибку 7 ($_IEStatus_NoMatch) = Нет совпадений
ID объекта пишу верный.

На других web страницах все норм. А вот на APSX не работает. Из-за чего такое происходит? :scratch:
 

firex

AutoIT Гуру
Сообщения
943
Репутация
208
JIereHga2010
Обратите внимание на ID после компиляции проекта, у него появился префикс. Вы можете отключить подобное поведение добавив свойство ClientIDMode="Static" вашей кнопке.
 

alex33

Скриптер
Сообщения
1,457
Репутация
186
JIereHga2010
Покажи разметку, которая в браузере.
 
Автор
J

JIereHga2010

Новичок
Сообщения
68
Репутация
0
Хочу немного переделать суть вопроса, и описать все более подробно.

В общем на раб. месте есть програмка для набора платежей, с которой я хочу программно сохранять данные.
А именно текст, который я заполняю в полях.
Скрин этих полей во вложении...

При исполнении данного кода:
Код:
#include <IE.au3>
$oIE = _IEAttach ('Добро пожаловать! C&Bill: Платежи населения и кассовые операции')
FileWrite ('HTML.txt', _IEBodyReadHTML($oIE))
FileWrite ('TEXT.txt', _IEBodyReadText($oIE))


Формируется 2 файла:
HTML.txt
<SCRIPT language=javascript type=text/javascript src="LET/JQuery/UI/js/jquery-1.4.2.min.js"></SCRIPT>

<SCRIPT language=javascript type=text/javascript src="LET/JQuery/UI/js/jquery-ui-1.8.6.custom.min.js"></SCRIPT>

<SCRIPT language=javascript type=text/javascript src="LET/CnBJDialog.js"></SCRIPT>

<TABLE style="MIN-WIDTH: 1000px; PADDING-BOTTOM: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; HEIGHT: 92%; PADDING-TOP: 0px" class=main>
<TBODY>
<TR style="BACKGROUND: url(images/Lime/a_bg_green.gif) repeat-x left center" class=topmenu>
<TD>
<DIV style="HEIGHT: 50px">
<TABLE>
<TBODY>
<TR>
<TD style="WIDTH: 200px"></TD>
<TD align=right>
<DIV id=divMenu class=lineMenu>
<TABLE width=540>
<TBODY>
<TR>
<TD style="WIDTH: 60px"><A style="CURSOR: pointer" onclick="GoUserRole('cashier');">Кассир</A> </TD>
<TD style="WIDTH: 80px"><A style="CURSOR: pointer" onclick="GoUserRole('settings')">Настройки</A> </TD>
<TD></TD></TR></TBODY></TABLE></DIV></TD>
<TD vAlign=center></TD><!--td>


<div>
<a id="idLogButton" onclick="ShowLog();">Лог</a>
</div>
<div id="idLogDialog" style="display:none;">
<span id="idLogContent"></span>
</div>

<script type="text/ecmascript">
function ShowLog() {

$.ajax({
type: "POST",
url: '/CnBill/WebServices/LogService.asmx/GetCurrentLog' ,
data: "{}",
contentType: "application/json; charset=utf-8",
success: OnRequestSuccess,
error: OnError
});
}

function OnRequestSuccess(msg) {
ShowDlg(msg.d);
}

function OnError(err) {
ShowDlg(err.responseText);
}

function ShowDlg(message) {
var preMsg = "<pre>" + message + "</pre>";

$('#idLogContent').html(preMsg);

$('#idLogDialog').dialog({
modal: true,
width: 800,
title: "",
height: 600,
buttons: {
Ok: function () {
$(this).dialog('close');
}
}
});
}

</script>
</td--></TR></TBODY></TABLE></DIV></TD>
<TD>
<FORM style="MARGIN-BOTTOM: 1px" id=Form1 method=post name=Form1 action=main.aspx>
<DIV><INPUT id=RadScriptManager1_TSM value=";;System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35:en-US:431ada91-004c-42e1-b075-858833778b03:ea597d4b:b25378d2;Telerik.Web.UI, Version=2014.2.724.40, Culture=neutral, PublicKeyToken=121fae78165ba3d4:en-US:9ac720df-7b88-4e1e-8026-2b8c24207e88:16e4e7cd:f7645509:24ee1bba:92fe8ea0:f46195d3:fa31b949:874f8ea2:c128760b:19620875:490a9d4e:bd8f85e4" type=hidden name=RadScriptManager1_TSM _RSM_init="true"> <INPUT id=__EVENTTARGET type=hidden name=__EVENTTARGET> <INPUT id=__EVENTARGUMENT type=hidden name=__EVENTARGUMENT> <INPUT id=__VIEWSTATE value=/wEPBSQ0MzQ3ZjYwNS03MDVlLTQxNjktOTM4NC04NzJiZDI3MWFiNGJlO2FkpY+p3wjmokzzyp2k23kOFYfN5gDX5rOam5nNwx8= type=hidden name=__VIEWSTATE> </DIV>
<SCRIPT type=text/javascript>
//<![CDATA[
var theForm = document.forms['Form1'];
function __doPostBack(eventTarget, eventArgument) {
if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
theForm.__EVENTTARGET.value = eventTarget;
theForm.__EVENTARGUMENT.value = eventArgument;
theForm.submit();
}
}
//]]>
</SCRIPT>

<SCRIPT type=text/javascript src="/CnBill/WebResource.a:rofl:?d=0dnrSvTX0mrjOGmSjf494LitJdqmpqIWf2tvrFjaxWR3mMl58moSKgMB-nJjFuqrFxRwDtDP5BUoHITafaO7dZuCCBCYVMItNKzzOzzbxbY1&amp;t=635587497108593405"></SCRIPT>
<LINK class=Telerik_stylesheet rel=stylesheet type=text/css href="/CnBill/WebResource.a:rofl:?d=FX6Yk9aB25QVacJ6rGWaHg4JxuqBIlHh25PqHTXafamr9uP5NBc2gnpboW-9schq_WN-KRjBEcxXOetQAMJpeYGyCg9qolSFPc79E8PlY8t2UhnPg-uaGmDAjgb2DVoMjlV2dxakRVaA4y2q9dcCQQ2&amp;t=635568472942050483"><LINK class=Telerik_stylesheet rel=stylesheet type=text/css href="/CnBill/WebResource.a:rofl:?d=YJulvoggyCIRtNSSYquT_PeW9c47dGw50SVi7pvoVnFZQ9nTdXhu8ra1euTBKtiFje5g8YzAEnNa3UVml3fbpmgY2dxkdGioeZgShNsT3qpofP6jdDjeOxuUrBfWJizi9s8eNFk0SW4gxMsPXe63O1mg5rwoKduX9nU8_C-myrY1&amp;t=635568472942050483">
<SCRIPT type=text/javascript src="/CnBill/Telerik.Web.UI.WebResource.a:rofl:?_TSM_HiddenField_=RadScriptManager1_TSM&amp;compress=1&amp;_TSM_CombinedScripts_=%3b%3bSystem.Web.Extensions%2c+Version%3d4.0.0.0%2c+Culture%3dneutral%2c+PublicKeyToken%3d31bf3856ad364e35%3aen-US%3a431ada91-004c-42e1-b075-858833778b03%3aea597d4b%3ab25378d2%3bTelerik.Web.UI%2c+Version%3d2014.2.724.40%2c+Culture%3dneutral%2c+PublicKeyToken%3d121fae78165ba3d4%3aen-US%3a9ac720df-7b88-4e1e-8026-2b8c24207e88%3a16e4e7cd%3af7645509%3a24ee1bba%3a92fe8ea0%3af46195d3%3afa31b949%3a874f8ea2%3ac128760b%3a19620875%3a490a9d4e%3abd8f85e4"></SCRIPT>

<SCRIPT type=text/javascript>
//<![CDATA[
if (typeof(Sys) === 'undefined') throw new Error('ASP.NET Ajax client-side framework failed to load.');
//]]>
</SCRIPT>

<DIV><INPUT id=__EVENTVALIDATION value=/wEWAgLPhNqvDAKM54rGBm2lGx120RK8ZO+i561dDRqcsVAwGqovep8BL2YwM17j type=hidden name=__EVENTVALIDATION> </DIV>
<SCRIPT type=text/javascript>
//<![CDATA[
Sys.WebForms.PageRequestManager._initialize('RadScriptManager1', 'Form1', [], [], [], 90, '');
//]]>
</SCRIPT>

<DIV style="DISPLAY: none" id=RadWindowManager1><!-- 2014.2.724.40 -->
<DIV style="DISPLAY: none" id=RadWindowManager1_alerttemplate>
<DIV class="rwDialogPopup radalert">
<DIV class=rwDialogText>{1} </DIV>
<DIV><A class=rwPopupButton onclick="$find('{0}').close(true);" href="javascript:void(0);"><SPAN class=rwOuterSpan><SPAN class=rwInnerSpan>##LOC[OK]##</SPAN> </SPAN></A></DIV></DIV></DIV>
<DIV style="DISPLAY: none" id=RadWindowManager1_prompttemplate>
<DIV class="rwDialogPopup radprompt">
<DIV class=rwDialogText>{1} </DIV>
<DIV>
<SCRIPT type=text/javascript>
function RadWindowprompt_detectenter(id, ev, input)
{
if (!ev) ev = window.event;
if (ev.keyCode == 13)
{
var but = input.parentNode.parentNode.getElementsByTagName("A")[0];
if (but)
{
if (but.click) but.click();
else if (but.onclick)
{
but.focus(); var click = but.onclick; but.onclick = null; if (click) click.call(but);
}
}
return false;
}
else return true;
}
</SCRIPT>
<INPUT onkeydown="return RadWindowprompt_detectenter('{0}', event, this);" class=rwDialogInput title="Enter Value" value={2}> </DIV>
<DIV><A class=rwPopupButton onclick="$find('{0}').close(this.parentNode.parentNode.getElementsByTagName('input')[0].value);" href="javascript:void(0);"><SPAN class=rwOuterSpan><SPAN class=rwInnerSpan>##LOC[OK]##</SPAN></SPAN></A> <A class=rwPopupButton onclick="$find('{0}').close(null);" href="javascript:void(0);"><SPAN class=rwOuterSpan><SPAN class=rwInnerSpan>##LOC[Cancel]##</SPAN></SPAN></A> </DIV></DIV></DIV>
<DIV style="DISPLAY: none" id=RadWindowManager1_confirmtemplate>
<DIV class="rwDialogPopup radconfirm">
<DIV class=rwDialogText>{1} </DIV>
<DIV><A class=rwPopupButton onclick="$find('{0}').close(true);" href="javascript:void(0);"><SPAN class=rwOuterSpan><SPAN class=rwInnerSpan>##LOC[OK]##</SPAN></SPAN></A> <A class=rwPopupButton onclick="$find('{0}').close(false);" href="javascript:void(0);"><SPAN class=rwOuterSpan><SPAN class=rwInnerSpan>##LOC[Cancel]##</SPAN></SPAN></A> </DIV></DIV></DIV><INPUT id=RadWindowManager1_ClientState type=hidden name=RadWindowManager1_ClientState> </DIV>
<TABLE style="PADDING-BOTTOM: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px" width="100%">
<TBODY>
<TR>
<TD width="70%">Пользователь <SPAN style="CURSOR: pointer" onclick=ShowUserLogs();> </SPAN></TD><!--td width="35%"></td-->
<TD rowSpan=2 width="30%"><INPUT id=Button1 class=btnExit value=Выход type=submit name=Button1></TD>
<TD rowSpan=2><B>C&amp;Bill</B></TD>
<TD rowSpan=2><IMG style="CURSOR: hand" id=imgLogo title="Version 3.0.14; Fix 2" onclick="GoUserRole('logo')" src="/CnBill/Images/cnb_small.png"></TD></TR>
<TR>
<TD><SPAN style="COLOR: yellow" id=lProfileName>Отделение </SPAN></TD></TR></TBODY></TABLE>
<SCRIPT type=text/javascript>
//<![CDATA[
Sys.Application.add_init(function() {
$create(Telerik.Web.UI.RadWindowManager, {"clientStateFieldID":"RadWindowManager1_ClientState","formID":"Form1","iconUrl":"","minimizeIconUrl":"","name":"RadWindowManager1","skin":"Default","windowControls":"[]"}, null, null, $get("RadWindowManager1"));
});
//]]>
</SCRIPT>
</FORM></TD></TR>
<TR class=mainrow>
<TD colSpan=3><IFRAME style="PADDING-BOTTOM: 0px; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; HEIGHT: 100%; OVERFLOW: hidden; PADDING-TOP: 0px" id=qwerty src="CashBills/Cash.aspx" frameBorder=0>
</IFRAME></TD></TR>
<TR>
<TD class=btm colSpan=3></TD></TR></TBODY></TABLE>
<SCRIPT type=text/javascript>

function onLoad() {
if (navigator.userAgent.indexOf("MSIE 6.0") != -1) {
document.getElementById("imgLogo").style.display = "none";
document.getElementById("divMenu").style.width = "500px";
}
}

function GoUserRole(role) {
var frame = document.getElementById("qwerty");
page = "";
switch (role) {
case "admin":
page = "Admin/Admin.aspx";
break;
case "buch":
page = "Distribution/Buch.aspx";
break;
case "cashier":
page = "CashBills/Cash.aspx";
break;
case "manager":
page = "CurrencyManagement/CurrencyManager.aspx";
break;
case "expert":
page = "Expert/MetalOperations.aspx";
break;
case "settings":
page = "UserOpts/UserOpts.aspx";
break;
default:
page = "logo.aspx";
break;
}
frame.src = page;
}

function ChangeSystem() {
var callBackFn = function(args) {
if (args != true) {
return;
}
else {
window.navigate('/CnBill/_MoneyTransfer/MoneyTransferLogo.aspx');
}
}

radconfirm("Вы уверены, что хотите сменить систему?", callBackFn);

}

function ShowUserLogs() {
MWindowShow({
"title": "Логи обращений в БД CnBill",
"url": "Admin/Dialogs/DataBaseLogViewDlg.aspx",
"height": "650"
});
}
</SCRIPT>

и TEXT.txt
Кассир Настройки



{1}
##LOC[OK]##
{1}

##LOC[OK]## ##LOC[Cancel]##
{1}
##LOC[OK]## ##LOC[Cancel]##

Пользователь C&Bill
Отделение

И судя по тем данным, которые Autoit получил из этой страницы, многих данных там не хватает...
Подскажите пожалуйста, кто знает, почему? И как с этим бороться))
 

Вложения

  • Безымянный.png
    Безымянный.png
    47.8 КБ · Просмотры: 12

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
фреймы смотри, открываешь панель разработчика, там все видно.
 
Автор
J

JIereHga2010

Новичок
Сообщения
68
Репутация
0
В панели разработчиков я все эти данные вижу. Но Autoit их не видит.
Ведь если б видел, то команда
Код:
_IEBodyReadText($oIE)


Вернула бы весь текст, отображаемый в документе. Ведь так?
 
Верх