Поиск видимого элемента

andropovleva

Client
Регистрация
23.11.2019
Сообщения
586
Реакции
46
Баллы
28
К примеру есть такой элемент, но у него есть свой номер совпадения. На странице их может быть много, но мне нужно сделать клик именно по тому что сейчас находится в кадре, такое возможно сделать?

118683
 
-1 попробуй
 
  • Спасибо
Реакции: andropovleva
Поиск по Xpatch. Должно сработать
 
(//span[text()='Like'])[-1] так не работает
 
Вы говорите, что у Вас на странице есть несколько таких элементов. Допустим отчет начинается с 0. То бишь третий элемент будет иметь индекс 2. Откуда Вы берете -1?.. Понимаю, что посоветовали, но возможно речь шла о форме документ на первом скрине, а не об индексе xpatch....
 
вот так можно сделать, если нужен элемент, который в окне браузера виден

C#:
Развернуть Свернуть Копировать
HtmlElement myel = instance.ActiveTab.FindElementsByAttribute("span", "innertext", "Like","regexp").Where(x=>x.DisplacementInTabWindow.Y>0&&x.DisplacementInTabWindow.Y<project.Profile.ScreenSizeHeight).FirstOrDefault();
 
xpath знает о видимости элементов на странице, но не о текущем размере окна браузера и попадает ли элемент в его область показа.

По xpath возможно получение по косвенным признакам, если приложение устанавливает какие-то классы для таких элементов.

Для решения задачи нужно использовать javascript, вам нужно получить размер экрана и позицию элемента в окне, после сравнить, попадает ли элемент в видимую часть.
 
  • Спасибо
Реакции: andropovleva
Вы говорите, что у Вас на странице есть несколько таких элементов. Допустим отчет начинается с 0. То бишь третий элемент будет иметь индекс 2. Откуда Вы берете -1?.. Понимаю, что посоветовали, но возможно речь шла о форме документ на первом скрине, а не об индексе xpatch....
форма и так с -1 стоит
 
вот так можно сделать, если нужен элемент, который в окне браузера виден

C#:
Развернуть Свернуть Копировать
HtmlElement myel = instance.ActiveTab.FindElementsByAttribute("span", "innertext", "Like","regexp").Where(x=>x.DisplacementInTabWindow.Y>0&&x.DisplacementInTabWindow.Y<project.Profile.ScreenSizeHeight).FirstOrDefault();
выполняется, но лайк не прожимается
 
  • Спасибо
Реакции: andropovleva

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