Как кликнуть по элементу имея XPATH путь?

booms1

Client
Регистрация
20.08.2019
Сообщения
139
Реакции
19
Баллы
18
54693
Есть xpath путь //*[@id="__attachments-view-56"]/li[1]/div/div и нужно кликать по очереди на фото (очерёдность фото - переменная которую как я понимаю нужно подставлять в путь)
Может кто поделиться кодом который будет клацать на фотку по xpath путю и в который можно будет вставить номер совпадения?
 
я честно с Xpath слаб но почему не выявитьть для начала как они определяются через тот же конструктор действий например а потом подставлять значение и кликать, ну или что то выпарсив за раз страницу и кликать
 
я честно с Xpath слаб но почему не выявитьть для начала как они определяются через тот же конструктор действий например а потом подставлять значение и кликать, ну или что то выпарсив за раз страницу и кликать
единственное к чему смог привязаться через конструктор - высота длинна и ширина, но это такое себе решение)
 
Получилось справиться с кликом по элементу, но не понимаю как вставить переменную в xpath путь, может кто подскажет?
C#:
Развернуть Свернуть Копировать
Tab tab = instance.ActiveTab;
HtmlElement he = tab.FindElementByXPath(@"/html/body/div[6]/div[1]/div/div/div[4]/div/ul/li[тут нужна переменная]/div/div",0);
tab.FullEmulationMouseMoveToHtmlElement(he);
tab.FullEmulationMouseClick("left","click");
 
Вот такой код всё победил
C#:
Развернуть Свернуть Копировать
Tab tab = instance.ActiveTab;
HtmlElement he = tab.FindElementByXPath(@"/html/body/div[6]/div[1]/div/div/div[4]/div/ul/li["+project.Variables["sovp"].Value+"]/div/div",0);
tab.FullEmulationMouseMoveToHtmlElement(he);
tab.FullEmulationMouseClick("left","click");

(sovp - номер совпадения)
 
  • Спасибо
Реакции: Philipp
Вот такой код всё победил
C#:
Развернуть Свернуть Копировать
Tab tab = instance.ActiveTab;
HtmlElement he = tab.FindElementByXPath(@"/html/body/div[6]/div[1]/div/div/div[4]/div/ul/li["+project.Variables["sovp"].Value+"]/div/div",0);
tab.FullEmulationMouseMoveToHtmlElement(he);
tab.FullEmulationMouseClick("left","click");

(sovp - номер совпадения)
Постарайся зацепиться за классы, за id, за не уникальные свойства элементов
html/body/div[6]
Плохой выбор, немного поменяется верстка и сломается шаблон

я честно с Xpath слаб но почему не выявитьть для начала как они определяются через тот же конструктор действий например а потом подставлять значение и кликать, ну или что то выпарсив за раз страницу и кликать
@ssXXXss ты ли это? Нет мата, заливания людей гавном? я тебя не узнаю))
 
  • Спасибо
Реакции: doc и TwistDanceR
Вот такой код всё победил
C#:
Развернуть Свернуть Копировать
Tab tab = instance.ActiveTab;
HtmlElement he = tab.FindElementByXPath(@"/html/body/div[6]/div[1]/div/div/div[4]/div/ul/li["+project.Variables["sovp"].Value+"]/div/div",0);
tab.FullEmulationMouseMoveToHtmlElement(he);
tab.FullEmulationMouseClick("left","click");

(sovp - номер совпадения)

Спасибо, это то что мне было нужно. У меня ощущение что раньше через кубик можно было подставлять переменные в xpath, а теперь почему-то не работает. А как сделать клик без эмуляции мыши? И почему перед путём стоит @?
 
Спасибо, это то что мне было нужно. У меня ощущение что раньше через кубик можно было подставлять переменные в xpath, а теперь почему-то не работает. А как сделать клик без эмуляции мыши? И почему перед путём стоит @?
1. ПКМ по любому месту в браузере - поиск по Xpath, вставляете нужную дорогу xpath.
2. Если нужно без эмуляции мыши, тогда в настройках Project поставьте так:
69274
 
Спасибо, я спрашиваю про C#
Попробуйте так.
C#:
Развернуть Свернуть Копировать
var el_col=instance.ActiveTab.FindElementsByXPath(xpath); ///тут указывает дорогу xpath
var el = el_col.Elements[0];
el.Click();
 
  • Спасибо
Реакции: Philipp

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