Помогите поймать кнопку

  • Автор темы Автор темы serg32
  • Дата начала Дата начала

serg32

Client
Регистрация
27.02.2015
Сообщения
545
Реакции
15
Баллы
18
Здравствуйте!

Подскажите пожалуйста, не могу никак поймать одну кнопку на сайте, возможно тут нужен необычный подход.

Вот есть сайт
https://rankw.ru/s/zennolab.com - после того как откроется страничка в самом низу нажимаем "Комментарии HypperComments" и там есть возможность поставить лайк или дизлайк, нажимаем на него и нас просит авторизоваться и там много иконок, именно ИКОНКУ не могу поймать, как указать клик по конкретной иконке, там в коде они тоже отображаются странно, не как картинка, при поиске элемента постоянно меняется нумерация и так далее, помогите поймать эту иконку, за что цепляться?
 
Да, про этот блок идет речь. Подскажите это как реализуется? XPath
Через "Конструктор действий" этот элемент плохо находится
как через стандартные кубики - не знаю, а код для C# написали выше
 
как через стандартные кубики - не знаю, а код для C# написали выше
вставил данный код "FindElementByXPath("//div[@data-type='vk']", 0);" в экшн "Свой C#" и получаю ошибку "
Компиляция кода Ошибка в действии "CS0103" "Имя "FindElementByXPath" отсутствует в текущем контексте". [Строка: 0; Cтолбец: 1]
"
 
вставил данный код "FindElementByXPath("//div[@data-type='vk']", 0);" в экшн "Свой C#" и получаю ошибку "
Компиляция кода Ошибка в действии "CS0103" "Имя "FindElementByXPath" отсутствует в текущем контексте". [Строка: 0; Cтолбец: 1]
"
ну там сначала надо объявить объект
например так
HtmlElement Target = null;
потом так
Target =FindElementByXPath("//div[@data-type='vk']", 0);
потом уже надо код что вы хотите сделать с этой кнопкой
если кликнуть то так например
Target.RiseEvent("click","Full");
 
  • Оценить
Реакции: serg32
Сделал как вы и сказали, все по порядку:

Вот содержание моего кубика с кодом
"
HtmlElement Target = null;
Target = FindElementByXPath("//div[@data-type='vk']", 0);
Target.RiseEvent("click","Full");
"
Ошибка осталась прежней -
Компиляция кода Ошибка в действии "CS0103" "Имя "FindElementByXPath" отсутствует в текущем контексте". [Строка: 2; Cтолбец: 9]
 
добавить еще это в начале
Tab tab = instance.ActiveTab;

и вот так заменить

Target = tab.FindElementByXPath("//div[@data-type='vk']", 0);
 
  • Оценить
Реакции: serg32
Tab tab = instance.ActiveTab;
Target = tab.FindElementByXPath("//div[@data-type='vk']", 0);
я бы сюда еще действие клика добавил
Код:
Развернуть Свернуть Копировать
HtmlElement Target = tab.FindElementByXPath("//div[@data-type='vk']", 0);
if (Target.IsVoid) return "error: Не удалось найти Target)";
tab.FullEmulationMouseMoveToHtmlElement(Target);
Thread.Sleep(regRandom.Next(500, 2500));
tab.FullEmulationMouseClick("left", "click");
upd. немного код исправил
 
  • Оценить
Реакции: serg32
я бы сюда еще действие клика добавил
Код:
Развернуть Свернуть Копировать
HtmlElement Target = tab.FindElementByXPath("//div[@data-type='vk']", 0);
if (Target.IsVoid) return "error: Не удалось найти Target)";
tab.FullEmulationMouseMoveToHtmlElement(Target);
Thread.Sleep(regRandom.Next(500, 2500));
tab.FullEmulationMouseClick("left", "click");
upd. немного код исправил
может у него версия которая еще не поддерживает эмуляцию мыши :bu:
 
  • Оценить
Реакции: serg32
Вот стандартными средствами, если я все правильно понял)
 

Вложения

  • Оценить
Реакции: serg32
Всем спасибо, все сделал. Работает!
 

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