HtmlElement Elemetik = instance.ActiveTab.FindElementByXPath("//div[contains(class(), '" + project.Variables["Peremennaya_s_Textom"].Value + "')]", 0);
// дальше для наглядности проверяем нашло ли наш элемент вообще:
if (Elemetik.IsVoid) {
return "не нашли элемента по таким признакам";
}
else {
return Elemetik.InnerText;
}
//его координаты подставляем в наши координаты первой точки в массиве
int x = Elemetik.DisplacementInTabWindow.X;
int y = Elemetik.DisplacementInTabWindow.Y;
Random rnd = new Random();
// указываем количество точек
int Kolichestvo_Tochek = 33;
// обьявляем массив точек, по которым будет двигаться курсор мыши
Point[] points = new Point[Kolichestvo_Tochek];
// в цикле заполняем наш масив
for (int i = 0; i<Kolichestvo_Tochek; i++)
{
// если координаты выходят за пределы страницы (минусовые), то водим не доходя до края (меняем на "чуть плюсовые").
if (x < 0) {
x = rnd.Next(0,5);
}
if (y < 0) {
y = rnd.Next(0,5);
}
points[i] = new Point(x, y);
project.SendInfoToLog(x.ToString() + " , " + y.ToString(), false); // выводим в лог координаты
// указываем рандомные пределы для сдвига курсора в пикселях для следующего круга цикла:
x += rnd.Next(-64,64);
y += rnd.Next(-64,64);
}
// в цикле двигаем курсором между точками, но обрабатываем массив координат уже с конца:
for (int i = Kolichestvo_Tochek-1; i>=0; i--)
{
//задаем рандомно скорость движения для каждого рывка:
instance.ActiveTab.FullEmulationMouseSetOptions(rnd.Next(4,7),rnd.Next(4,7),rnd.Next(2,5));
//Двигаем мышкой плавно:
instance.ActiveTab.FullEmulationMouseMove(points.ElementAt(i).X, points.ElementAt(i).Y);
}
//на всякий пожарный подводим к елементу курсор более рандомно, а то оно только к его крайней левой точке по координатам подводит:
instance.ActiveTab.FullEmulationMouseMoveToHtmlElement(Elemetik);
// и кликаем в этом месте:
instance.ActiveTab.FullEmulationMouseClick("left", "click");