Там главное это пример на шарпе или пхп, понимание этого примера не требует знаний английского. Но если с программированием раньше не сталкивались, то проще подождать добавления данного функционала в 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.
Ссылку на страницу дадите?