При кликанье по элементу перехода на вкладку нет

SlavenTyz

Client
Регистрация
30.04.2018
Сообщения
1 167
Благодарностей
37
Баллы
48
На видео ( ссылка на облако https://cloud.mail.ru/public/egXB/VKbhvac5q ) подробнее показал как наводится мышка на элемент и делает клик, но переход иногда есть, а иногда нет. Наверное фаза луны влияет. Использую 2 вида эмуляции мышки
1)
Tab1.FullEmulationMouseMoveToHtmlElement(htmMain);
Tab1.FullEmulationMouseClick("left", "click");

2) По рандомным координатам
int baseLeft = Convert.ToInt32(htmMain.GetAttribute("leftInTab"));
int baseTop = Convert.ToInt32(htmMain.GetAttribute("topInTab"));
int width = Convert.ToInt32(htmMain.GetAttribute("width"));
int height = Convert.ToInt32(htmMain.GetAttribute("height"));



// Генерируем случайное смещение внутри элемента
Random rnd = new Random();
// Добавляем небольшое смещение, чтобы не всегда кликать в самый угол
int offsetX = rnd.Next(5, width - 5);
int offsetY = rnd.Next(5, height - 5);

int clickX = baseLeft + offsetX;
int clickY = baseTop + offsetY;

// Выполняем клик по рассчитанным координатам
// Используйте MouseClick, если нужна полная эмуляция мыши
instance.ActiveTab.MouseClick(clickX, clickY, "left", "click");
 

Dmitriy_Zenno

Administrator
Регистрация
28.10.2025
Сообщения
521
Благодарностей
220
Баллы
43
На видео ( ссылка на облако https://cloud.mail.ru/public/egXB/VKbhvac5q ) подробнее показал как наводится мышка на элемент и делает клик, но переход иногда есть, а иногда нет. Наверное фаза луны влияет. Использую 2 вида эмуляции мышки
1)
Tab1.FullEmulationMouseMoveToHtmlElement(htmMain);
Tab1.FullEmulationMouseClick("left", "click");

2) По рандомным координатам
int baseLeft = Convert.ToInt32(htmMain.GetAttribute("leftInTab"));
int baseTop = Convert.ToInt32(htmMain.GetAttribute("topInTab"));
int width = Convert.ToInt32(htmMain.GetAttribute("width"));
int height = Convert.ToInt32(htmMain.GetAttribute("height"));



// Генерируем случайное смещение внутри элемента
Random rnd = new Random();
// Добавляем небольшое смещение, чтобы не всегда кликать в самый угол
int offsetX = rnd.Next(5, width - 5);
int offsetY = rnd.Next(5, height - 5);

int clickX = baseLeft + offsetX;
int clickY = baseTop + offsetY;

// Выполняем клик по рассчитанным координатам
// Используйте MouseClick, если нужна полная эмуляция мыши
instance.ActiveTab.MouseClick(clickX, clickY, "left", "click");
Здравствуйте,

По видео видно, что у вас клик происходит не по элементу. Скорей всего вы написали неверный xPath, поэтому клик не попадает по нужному элементу.

Я бы вам рекомендовал использовать этот метод, но с другим xPath


C#:
Tab1.FullEmulationMouseMoveToHtmlElement(htmMain);
Tab1.FullEmulationMouseClick("left", "click");
 

SlavenTyz

Client
Регистрация
30.04.2018
Сообщения
1 167
Благодарностей
37
Баллы
48
Здравствуйте,

По видео видно, что у вас клик происходит не по элементу. Скорей всего вы написали неверный xPath, поэтому клик не попадает по нужному элементу.

Я бы вам рекомендовал использовать этот метод, но с другим xPath


C#:
Tab1.FullEmulationMouseMoveToHtmlElement(htmMain);
Tab1.FullEmulationMouseClick("left", "click");
1) Элемент индифицировал верно
140414


2) Я специально использовал разные варианты клика, что бы на верника
 

b1zar

Client
Регистрация
29.06.2019
Сообщения
167
Благодарностей
98
Баллы
28
1) Элемент индифицировал верно
Посмотреть вложение 140414


2) Я специально использовал разные варианты клика, что бы на верника
1) Ну по видео как выше писали, анимация как бы наводит мимо кнопки
2) Видно что фокус слетел с окна браузер, в этом случае могут не проходить клики (Такое бывает только в ПМ), давно такого не замечал, может уже пофиксили, но давненько было такое.
3) Пару раз встречались сайты, которые не реагировали на FullEmulationMouseClick("left", "click"), видимо изза минимальной задержки между Down и Up евентом. Попробуй такое
C#:
Random rand = new Random();

instance.ActiveTab.FullEmulationMouseClick("left", "down");
Thread.Sleep(rand.Next(70, 120));
instance.ActiveTab.FullEmulationMouseClick("left", "up");
 

Dmitriy_Zenno

Administrator
Регистрация
28.10.2025
Сообщения
521
Благодарностей
220
Баллы
43

SlavenTyz

Client
Регистрация
30.04.2018
Сообщения
1 167
Благодарностей
37
Баллы
48
1) Ну по видео как выше писали, анимация как бы наводит мимо кнопки
2) Видно что фокус слетел с окна браузер, в этом случае могут не проходить клики (Такое бывает только в ПМ), давно такого не замечал, может уже пофиксили, но давненько было такое.
3) Пару раз встречались сайты, которые не реагировали на FullEmulationMouseClick("left", "click"), видимо изза минимальной задержки между Down и Up евентом. Попробуй такое
C#:
Random rand = new Random();

instance.ActiveTab.FullEmulationMouseClick("left", "down");
Thread.Sleep(rand.Next(70, 120));
instance.ActiveTab.FullEmulationMouseClick("left", "up");
Попробовал не помогло
 

SlavenTyz

Client
Регистрация
30.04.2018
Сообщения
1 167
Благодарностей
37
Баллы
48

Dmitriy_Zenno

Administrator
Регистрация
28.10.2025
Сообщения
521
Благодарностей
220
Баллы
43
Вообще не понял зачем прописывать путь которого нет на странице
Извиняюсь, не заметил. Скрипты сайта изменили XPath, поэтому он стал неверным.

Вот нормальный:
C#:
//span[contains(@class, 'item active')]
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)