Xpath: Как получить координаты элемента?

Stelsgrower

Client
Регистрация
21.12.2018
Сообщения
134
Благодарностей
63
Баллы
28
Есть элемент (кнопка) на странице, от которой нужно получить значения top и left. Найти элемент можно только по Xpath, тк на странице много одинаковых элементов, отличаются между собой только позицией left и top
 

ebrwebrw

Client
Регистрация
20.08.2018
Сообщения
221
Благодарностей
164
Баллы
43
Tab tab = instance.ActiveTab;
HtmlElement he = tab.FindElementByXPath("xpath",0);


project.SendInfoToLog("Y:"+Convert.ToString(he.DisplacementInTabWindow.Y), false);
project.SendInfoToLog("X:"+Convert.ToString(he.DisplacementInTabWindow.X), false);
 
  • Спасибо
Реакции: Platon и orka13

Stelsgrower

Client
Регистрация
21.12.2018
Сообщения
134
Благодарностей
63
Баллы
28

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
ты что сам с собой общаеся ? ))
 

Stelsgrower

Client
Регистрация
21.12.2018
Сообщения
134
Благодарностей
63
Баллы
28
ты что сам с собой общаеся ? ))
Прикинь, да!) Но по теме, я уже скоро с ума сойду. Как получить вытащить эту позицию сраную...
InnerHtml и другие атрибуты таким скриптом вытаскиваются, но команды для того, чтобы вытащить позицию Left и Top походу нет...
Код:
string xpath_exp = "/html/body/div[1]/div[1]/div[2]/div[1]/div[2]/div/div[4]/div[1]/button[1]/div/span";
HtmlElement he = tab.FindElementByXPath("xpath",0).InnerHtml;
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
Прикинь, да!) Но по теме, я уже скоро с ума сойду. Как получить вытащить эту позицию сраную...
InnerHtml и другие атрибуты таким скриптом вытаскиваются, но команды для того, чтобы вытащить позицию Left и Top походу нет...
прикинь не смешно, было бы подробней вылохить что нить. хоть шаб с двумя кубиками, люди так быстрее отзываются. ну а если посмотреть что на носу выходные и тем более пасха то всегда приходится долго ждать ответа, поэтому выложи всё своё, примеры, скрины, или шаб, вот думаю так ответ получишь быстрее

P.S. мы тоже можем сказать что с ума иногда сходим что читаем
 

Stelsgrower

Client
Регистрация
21.12.2018
Сообщения
134
Благодарностей
63
Баллы
28
Нужно загрузить картинку кликом по кнопке, но найти ее можно только по Xpath, тк таких элементов много на странице и отличаются они только позицией Left и Tab. Клик через код не срабатывает, нужно вытащить позиции x,y найденного через Xpath элемента и положить их в переменные, чтобы в дальнейшем подставить переменные в эмуляции мыши.


 

Stelsgrower

Client
Регистрация
21.12.2018
Сообщения
134
Благодарностей
63
Баллы
28
прикинь не смешно, было бы подробней вылохить что нить. хоть шаб с двумя кубиками, люди так быстрее отзываются. ну а если посмотреть что на носу выходные и тем более пасха то всегда приходится долго ждать ответа, поэтому выложи всё своё, примеры, скрины, или шаб, вот думаю так ответ получишь быстрее

P.S. мы тоже можем сказать что с ума иногда сходим что читаем
Ну так и нет этих кубиков, код я прикрепил выше, впрочем как и точное описание проблемы...
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
ну так довереным людям сайт дай, ссылку, в понедельник только выйдут экстрасенсы
 

Stelsgrower

Client
Регистрация
21.12.2018
Сообщения
134
Благодарностей
63
Баллы
28

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
архив залить на форум что положение статуса не даёт ?
надо по сокращалке
да 3 инвалида по ней пройдёт и не больше
 
  • Спасибо
Реакции: Stelsgrower

Stelsgrower

Client
Регистрация
21.12.2018
Сообщения
134
Благодарностей
63
Баллы
28
Последнее редактирование:

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113

ebrwebrw

Client
Регистрация
20.08.2018
Сообщения
221
Благодарностей
164
Баллы
43
Да в моем примере за место "xpath" нужно было прописать путь до элемента, работало там всё


Tab tab = instance.ActiveTab;
HtmlElement he = tab.FindElementByXPath("тут путь",0);

тут были нужные тебе данные о позиции элемента
//he.DisplacementInTabWindow.Y;
//he.DisplacementInTabWindow.X
project.SendInfoToLog("Y:"+Convert.ToString(he.DisplacementInTabWindow.Y), false);
project.SendInfoToLog("X:"+Convert.ToString(he.DisplacementInTabWindow.X), false);
 

Rooter85

Client
Регистрация
04.07.2015
Сообщения
244
Благодарностей
64
Баллы
28
Да в моем примере за место "xpath" нужно было прописать путь до элемента, работало там всё
Мне кажется если умеешь работать с XPATH то и проверка позиций не понадобилась бы, разве что проверка на видимость элемента.
 

ebrwebrw

Client
Регистрация
20.08.2018
Сообщения
221
Благодарностей
164
Баллы
43
Мне кажется если умеешь работать с XPATH то и проверка позиций не понадобилась бы, разве что проверка на видимость элемента.
Ну так-то да, но когда нужно написать функцию движение мыши с прокруткой до элемента, да и что бы он 100% был виден на странице, а не только его верхний/нижний край, там еще и height элемента учитываешь помимо его координат нужно ведь

Ну а про автора согласен, ему думаю нафиг не нужно было получать координаты элемента, поиск элемента по xpath и клика по элементу было бы достаточно скорее всего
 
Последнее редактирование:

Stelsgrower

Client
Регистрация
21.12.2018
Сообщения
134
Благодарностей
63
Баллы
28
Ну так-то да, но когда нужно написать функцию движение мыши с прокруткой до элемента, да и что бы он 100% был виден на странице, а не только его верхний/нижний край, там еще и height элемента учитываешь помимо его координат нужно ведь

Ну а про автора согласен, ему думаю нафиг не нужно было получать координаты элемента, поиск элемента по xpath и клика по элементу было бы достаточно скорее всего
Да не работает на нужном сайте клик, иначе бы такие костыли не лепил... Проблему решил готовым сниппетом https://zennolab.com/discussion/threads/xpath-universalnyj-c-shag-raboty-s-ehlementami.20830/
 

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