Там главное это пример на шарпе или пхп, понимание этого примера не требует знаний английского. Но если с программированием раньше не сталкивались, то проще подождать добавления данного функционала в ProjectMaker.а чего в русском варианте нету?
помогите сделать шаг в креаторе. Нужно после ввода капчти в том же поле нажать на интер.
he.Focus(); // фокусируемся на этом элементе
Emulator.Enter(instance.MainTab.Handle, he); // нажимаем Enter так
Emulator.EnterDown(instance.MainTab.Handle, he); // или вот так
using System;
using Zennolab.CommandCenter;
namespace s
{
internal class Step1
{
public static int Execute(Instance instance)
{
// Очистка куков
instance.ClearCookie();
// Переход на http://perm.kp.ru/daily/forumcontest/photo/95477
Tab tb = instance.MainTab;
if ((tb.IsVoid) || (tb.IsNull)) return -1;
if (tb.IsBusy) tb.WaitDownloading();
tb.Navigate("http://perm.kp.ru/daily/forumcontest/photo/95477");
if (tb.IsBusy) tb.WaitDownloading();
HtmlElement he;
// Распознаем капчу
he = instance.GetTabByAddress("page").GetDocumentByAddress("0").FindElementByTag("form", 2).FindChildById("captcha_image");
if (he.IsVoid) {
he = instance.GetTabByAddress("page").GetDocumentByAddress("0").FindElementByTag("form", 2).FindChildByAttribute("img", "fulltag", "img", "text", 0);
}
if (he.IsVoid) return -1;
var res = ZennoPoster.CaptchaRecognition("MonkeyEnter.dll", he, "");
// Установка текста капчи
he = instance.GetTabByAddress("page").GetDocumentByAddress("0").FindElementByTag("form", 2).FindChildByName("captcha_code");
if (he.IsVoid) {
he = instance.GetTabByAddress("page").GetDocumentByAddress("0").FindElementByTag("form", 2).FindChildById("captcha_code");
}
if (he.IsVoid) {
he = instance.GetTabByAddress("page").GetDocumentByAddress("0").FindElementByTag("form", 2).FindChildByAttribute("input:text", "fulltag", "input:text", "text", 0);
}
if (he.IsVoid) return -1;
he.SetValue(res, true);
he.Focus();
Emulator.EnterDown(instance.MainTab.Handle);
}
}
}
А ты ссылку на сборку Emulations.dll подключил? Вижу что нет.вот так чтоли?
ругется при отладке: Имя 'Emulator' отсутствует в текущем контексте
Поправьте плиз
using Emulations;
using System;
using Zennolab.CommandCenter;
using Emulations;
namespace s
{
internal class Step1
's.Step1.Execute(Zennolab.CommandCenter.Instance)': не все ветви кода возвращают значение
Ссылка у меня добавлена была- путь указан всё как на примере.
Вписал
1using Emulations;
теперь шапка получилась такая:
выдало: Ошибка при построении проекта
...
Emulator.EnterDown(instance.MainTab.Handle, he);
return 0; // обязательно должно быть здесь (в конце метода) т.к. не все ветви кода возвращают значение :)
...
также заменил и вставил на антигейт распознавание.var res = ZennoPoster.CaptchaRecognition("Anti-Captcha.dll", he, "");
пишет что проект построен.
Отладка проходит. Но действия никакие не делаются.
Запускаю в постере - в инстансе вообще не показываются действия.
также заменил и вставил на антигейт распознавание.
В итоге в мозилле ничего не изменилось, т.е. шаб не выполнился
А ты ни чего лишнего не удалил.
Если NumberInParentDocument всегда одинаков, то вероятнее всего элемент можно вычленить по номеру совпадения из общего списка элементов по аттрибуту fulltagname.
Ссылку на страницу дадите?
))


