Кибор » Кибор - Интегрированная среда разработки ботов » Вопросы и решение проблем » Работа в браузере

Страниц (1): [1]
 

1. SeMiTr - 28 Июня, 2017 - 09:52:34 - перейти к сообщению
Мой робот должен выполнять 2 действия в браузере. Кликать элемент, и в появившемся окне (корневом div-е) искать картинку и кликать по ней. С первым действием робот справляется (по крайней мере когда не открыта опция "посмотреть код". В противном случае не срабатывает), а на втором - буксует. Мышь не двигается, и через некоторое время программа закрывается. Версия бота бесплатная. Картинку проверял - она правильная.
Код - вот
CODE:
int col_KIB, ex_KIB, ey_KIB, sum_KIB, x_KIB, y_KIB;
int Image_0_KIB[93][16];

start_();

findimage_(#Image_0_KIB[0][0], 0, 0, 0, 1, 200, 5, 0, -1, 0, 100, 1, 0, 0, ex_KIB, ey_KIB, #sum_KIB, #x_KIB, #y_KIB);



function start_()
{
getdisplay(col_KIB, ex_KIB, ey_KIB);
load_image_();
pause(1000);
}


function findimage_(int #Image, int t, int p1, int p2, int m, int xm, int ym, int p3, int fon, int r, int p, int k, int xs, int ys, int xf, int yf, int#sum, int#x, int#y)
{
int timKIB, sumKIB, xKIB, yKIB;
pause(p1);
sumKIB=0;
if (t!=1) timKIB=gettime();
a: if (r==0 && p==100){sum=findimage(k, #Image[0][0], fon, #x[0], #y[0], xs, ys, xf, yf, -1); if (sum>0) goto e;}
else {sum=findimage(k, #Image[0][0], fon, #x[0], #y[0], xs, ys, xf, yf, r, r, r, r, r, r, p, 1, -1); if (sum>0) goto e;}
if (t==0) return 0;
if (gettime()-timKIB<t){sleep(20); goto a;}
return 0;
e: sumKIB=sum; xKIB=x[0]; yKIB=y[0];
pause(p2);
if (m==1){mouse(LEFT, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==2){mouse(MIDDLE, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==3){mouse(RIGHT, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==4){mousedown(LEFT, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==5){mousedown(MIDDLE, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==6){mousedown(RIGHT, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==7){mouseup(LEFT, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==8){mouseup(MIDDLE, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==9){mouseup(RIGHT, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==10){mousemove(xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
return sumKIB;
}




function load_image_()
{
loadimage (#Image_0_KIB[0][0], "C:\Users\энергия\Documents\Кибор\Image_0.bmp");
}


Р.S. Хотел ещё проиллюстрировать картинками, но к сожалению они не поддерживаются Огорчение
2. Dantes3000 - 28 Июня, 2017 - 13:35:37 - перейти к сообщению
Ну так у тебя только поиск и нажатие по картинке. потом выход.
3. SeMiTr - 29 Июня, 2017 - 05:53:13 - перейти к сообщению
CODE:

int Image_0_KIB[93][16];
int Image_1_KIB[19][19];

start_();

findimage_(#Image_0_KIB[0][0], 0, 0, 0, 1, 160, 38, 0, -1, 0, 100, 1, 0, 0, ex_KIB, ey_KIB, #sum_KIB, #x_KIB, #y_KIB);
findimage_(#Image_1_KIB[0][0], 200, 0, 0, 0, 0, 0, 0, -1, 30, 100, 1, 0, 0, ex_KIB, ey_KIB, #sum_KIB, #x_KIB, #y_KIB);



function start_()
{
getdisplay(col_KIB, ex_KIB, ey_KIB);
load_image_();
pause(1000);
}


function findimage_(int #Image, int t, int p1, int p2, int m, int xm, int ym, int p3, int fon, int r, int p, int k, int xs, int ys, int xf, int yf, int#sum, int#x, int#y)
{
int timKIB, sumKIB, xKIB, yKIB;
pause(p1);
sumKIB=0;
if (t!=1) timKIB=gettime();
a: if (r==0 && p==100){sum=findimage(k, #Image[0][0], fon, #x[0], #y[0], xs, ys, xf, yf, -1); if (sum>0) goto e;}
else {sum=findimage(k, #Image[0][0], fon, #x[0], #y[0], xs, ys, xf, yf, r, r, r, r, r, r, p, 1, -1); if (sum>0) goto e;}
if (t==0) return 0;
if (gettime()-timKIB<t){sleep(20); goto a;}
return 0;
e: sumKIB=sum; xKIB=x[0]; yKIB=y[0];
pause(p2);
if (m==1){mouse(LEFT, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==2){mouse(MIDDLE, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==3){mouse(RIGHT, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==4){mousedown(LEFT, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==5){mousedown(MIDDLE, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==6){mousedown(RIGHT, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==7){mouseup(LEFT, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==8){mouseup(MIDDLE, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==9){mouseup(RIGHT, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==10){mousemove(xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
return sumKIB;
}




function load_image_()
{
loadimage (#Image_0_KIB[0][0], "C:\Users\энергия\Documents\Кибор\Image_0.bmp");
loadimage (#Image_1_KIB[0][0], "C:\Users\энергия\Documents\Кибор\I40.bmp");
}



Прошу прощения. Не тот код прислал.

Стоит заметить что сайт блокирует некоторые клики, но как я понял для Кибора это не проблема. Или нет?
4. Dantes3000 - 29 Июня, 2017 - 07:15:21 - перейти к сообщению
оох...ну вот опять. 2 поиска картинки и выход из программы. Делай цикл. Смотри гайды на форуме, читай.
5. SeMiTr - 01 Июля, 2017 - 12:15:02 - перейти к сообщению
Мне на данном этапе собственно и надо 2 клика и всё. Если имеется в виду цикл для второго клика, чтобы не пропустить его, то это не помогло. Программа работает, но никак не реагирует на вторую картинку, которую, повторюсь, я проверил. При наведении она немного затемняется, но я поставил не учитывать цвет пикселей и достаточную разбежность цвета. Или опять что-то не то делаю?
6. Dantes3000 - 01 Июля, 2017 - 12:55:47 - перейти к сообщению
Может и не достаточную. Я обычно в таких случаях после нахождения еще ставлю клик по координатам, если картинка найдена
(Добавление)
CODE:

int Image_0_KIB[93][16];
int Image_1_KIB[19][19];

start_();

if(findimage_(#Image_0_KIB[0][0], 0, 0, 0, 1, 160, 38, 0, -1, 0, 100, 1, 0, 0, ex_KIB, ey_KIB, #sum_KIB, #x_KIB, #y_KIB)==0) messagebox("не нашел 1");
if(findimage_(#Image_1_KIB[0][0], 200, 0, 0, 0, 0, 0, 0, -1, 30, 100, 1, 0, 0, ex_KIB, ey_KIB, #sum_KIB, #x_KIB, #y_KIB==0) messagebox("не нашел 2");



function start_()
{
getdisplay(col_KIB, ex_KIB, ey_KIB);
load_image_();
pause(1000);
}


function findimage_(int #Image, int t, int p1, int p2, int m, int xm, int ym, int p3, int fon, int r, int p, int k, int xs, int ys, int xf, int yf, int#sum, int#x, int#y)
{
int timKIB, sumKIB, xKIB, yKIB;
pause(p1);
sumKIB=0;
if (t!=1) timKIB=gettime();
a: if (r==0 && p==100){sum=findimage(k, #Image[0][0], fon, #x[0], #y[0], xs, ys, xf, yf, -1); if (sum>0) goto e;}
else {sum=findimage(k, #Image[0][0], fon, #x[0], #y[0], xs, ys, xf, yf, r, r, r, r, r, r, p, 1, -1); if (sum>0) goto e;}
if (t==0) return 0;
if (gettime()-timKIB<t){sleep(20); goto a;}
return 0;
e: sumKIB=sum; xKIB=x[0]; yKIB=y[0];
pause(p2);
if (m==1){mouse(LEFT, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==2){mouse(MIDDLE, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==3){mouse(RIGHT, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==4){mousedown(LEFT, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==5){mousedown(MIDDLE, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==6){mousedown(RIGHT, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==7){mouseup(LEFT, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==8){mouseup(MIDDLE, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==9){mouseup(RIGHT, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==10){mousemove(xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
return sumKIB;
}




function load_image_()
{
loadimage (#Image_0_KIB[0][0], "C:\Users\энергия\Documents\Кибор\Image_0.bmp");
loadimage (#Image_1_KIB[0][0], "C:\Users\энергия\Documents\Кибор\I40.bmp");
}

(Добавление)
и перед нахождением желательно ставь паузу 300 мсек, а то бывает не обрабатывается нажатие. Но не делай так, если изображение двигается
7. NoNseNs - 03 Июля, 2017 - 08:09:20 - перейти к сообщению
Здравствуйте, подскажите как настроить разбежность цветов. Есть картинка с кнопкой и светло серым фоном, и есть картинка с такой же кнопкой, но белым фоном. КИбер находит картинки и выполняет действия (нажимает кнопку), но мне нужно, что бы на кнопку с светло серым фоном он не реагировал, а выбирал кнопку только с белым фоном. (фон расположен не на кнопках)
8. SeMiTr - 04 Июля, 2017 - 04:44:36 - перейти к сообщению
Я тупой. Надо было просто галочку поставить на клике.
 NoNseNs пишет:
Здравствуйте, подскажите как настроить разбежность цветов. Есть картинка с кнопкой и светло серым фоном, и есть картинка с такой же кнопкой, но белым фоном. КИбер находит картинки и выполняет действия (нажимает кнопку), но мне нужно, что бы на кнопку с светло серым фоном он не реагировал, а выбирал кнопку только с белым фоном. (фон расположен не на кнопках)

Как я понимаю разбежность цвета тут не причём. Попробую выделить кнопку и часть фона, и кликать не в угол (+X=0 +Y=0), а со смещением. К примеру (+X=15 +Y=15)

Powered by ExBB FM 1.0 Final