iMacro в поисках элемента

Я пишу сценарий C ++ iMacro, который будет входить на веб-сайт, переходить на определенную страницу и искать флажок. Если флажок не существует, скрипт будет обновлять страницу каждые X секунд. Если флажок существует, он будет выбран. В основном мне просто нужно выяснить, как заставить iMacro искать флажок. Вот мой код до сих пор:

using namespace System;
#include <string>

int timeout = 60;
ref class ManagedGlobals {
public:
static iMacros::AppClass^ app;
};

// test if element exists
bool doesElementExist() {
iMacros::Status stat;
ManagedGlobals::app->iimDisplay("Searching for element", timeout);
stat = ManagedGlobals::app->iimPlay("CODE:SET !TIMEOUT_TAG 1\n"+ "CODE:TAG POS=8 TYPE=INPUT:CHECKBOX FORM=ACTION:/pls/PROD/bwykfreg.P_AltPin1?deviceType=C ATTR=NAME:sel_crn EXTRACT=TXT", timeout);
ManagedGlobals::app->iimDisplay(stat.ToString(), timeout);
ManagedGlobals::app->iimPlay("CODE:WAIT SECONDS=10", timeout);
if (stat != iMacros::Status::sOk) {
ManagedGlobals::app->iimDisplay("Didn't find it", timeout);
return false;
}
ManagedGlobals::app->iimDisplay("Found it", timeout);
return true;
}

Я проверил это на странице, флажок СУЩЕСТВУЕТ, но скрипт не может его найти и вместо этого возвращает код ошибки -1100, который в соответствии с эта страница это значит Load Failed: Failed to load the macro (syntax or I/O error) (Found wrong macro command while loading file).

Кто-нибудь знает, в чем проблема?

0

Решение

Попробуйте удалить эту часть.

FORM=ACTION:/pls/PROD/bwykfreg.P_AltPin1?deviceType=C

Эта часть может быть изменена на странице, но она не нужна для TAG, чтобы найти элемент. Также попробуйте изменить положение флажка, изменив POS = 8. Начните с номера 1 до 15 и посмотрите, меняется ли это число.

Также вы можете изменить это

stat = ManagedGlobals::app->iimPlay("CODE:SET !TIMEOUT_TAG 1\n"+ "CODE:TAG POS=8 TYPE=INPUT:CHECKBOX FORM=ACTION:/pls/PROD/bwykfreg.P_AltPin1?deviceType=C ATTR=NAME:sel_crn EXTRACT=TXT", timeout);

в это

stat = ManagedGlobals::app->iimPlay("CODE:SET !TIMEOUT_TAG 1\n"+ "TAG POS=8 TYPE=INPUT:CHECKBOX ATTR=NAME:sel_crn EXTRACT=TXT", timeout);

КОД: может появиться только один раз внутри одного макроса. \n используется для разделения командных строк

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]