- Регистрация
- 19.06.2013
- Сообщения
- 911
- Благодарностей
- 316
- Баллы
- 63
Собственно вопрос. есть капча. аналогия Geetest. классический слайдер сдвиг вправо. Диапазон движения ~150-300px.
Беда в то что не могу понять почему то перелёт, то недолёт. от 15 до 100px. Уже и руками проверял. и в ручную прописывал сколько точно надо сдвинут.
Но всё безуспешно. Редко очень сдвигает примерно на нужное расстояние. Пока остановился на том что страница имеет закодированные хитрые JS которые мне всё ломает.
Может кто то встречался с данной проблемой.
Дополняю один из самых простых вариантов кода которые я пробовал.
Беда в то что не могу понять почему то перелёт, то недолёт. от 15 до 100px. Уже и руками проверял. и в ручную прописывал сколько точно надо сдвинут.
Но всё безуспешно. Редко очень сдвигает примерно на нужное расстояние. Пока остановился на том что страница имеет закодированные хитрые JS которые мне всё ломает.
Может кто то встречался с данной проблемой.
Дополняю один из самых простых вариантов кода которые я пробовал.
C#:
// Читаем переменные
int offset = int.Parse(project.Variables["captcha_screen_offset"].Value);
int startX = int.Parse(project.Variables["captcha_slider_center_x"].Value);
int startY = int.Parse(project.Variables["captcha_slider_center_y"].Value);
// Коррекция (если нужно)
int CORRECTION = 0; // Меняй: +10 если недоезжает, -10 если переезжает
int finalOffset = offset + (Math.Sign(offset) * CORRECTION);
int targetX = startX + finalOffset;
// ВСЁ ДВИЖЕНИЕ — 3 КОМАНДЫ:
instance.ActiveTab.FullEmulationMouseMove(startX, startY); // 1. Навели
Thread.Sleep(100);
instance.ActiveTab.FullEmulationMouseClick("left", "down"); // 2. Зажали
Thread.Sleep(50);
instance.ActiveTab.FullEmulationMouseMove(targetX, startY); // 3. Потянули
Thread.Sleep(200);
instance.ActiveTab.FullEmulationMouseClick("left", "up"); // 4. Отпустили
Thread.Sleep(300);



