FullEmulationMouseMoveToHtmlElement не учитывает слои

gmr

Client
Регистрация
05.12.2014
Сообщения
55
Благодарностей
12
Баллы
8
ведет мышь и прокручивает до элемента, но не учитывает есть ли слои сверху. в результате если делать связку FullEmulationMouseMoveToHtmlElement() и FullEmulationMouseClick(), то кликнет по слою, но не по элементу. нужно учитывать z-index и слои, иначе прокрутка до элемента не имеет смысла - он есть в пределах экрана, но скрыт под слоями
zennolab.com выбран в качестве примера. наведет мышку в районе указателя стрелки, а не прокрутит выше
56133
 

Вложения

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 709
Баллы
113
если элемент под слоем , по проверка на видимость покажет что он невидим. плюс дополнительная проверка взятие элемента по координатам покажет что там не тот элемент на который хотим кликнуть.
тем более что FullEmulationMouseMoveToHtmlElement это всего лишь команда на C# . готовое решение есть в виде кубика. не будут же разработчики писать снипет работы с мышкой :-) а уж тем более что на форуме просто 100500 решений как работать с крысой и как проверять видимость элементов.
просто удивительно как быстро новички находят раздел баги, а полезную информацию на форуме в упор не видят.
 

gmr

Client
Регистрация
05.12.2014
Сообщения
55
Благодарностей
12
Баллы
8
FullEmulationMouseMoveToHtmlElement ведет мышь к элементу с полной эмуляцией, прокручивая и меняя траекторию движения. сделать Click() можно и вовсе без проверок и по нужному элементу. прокрутить тоже можно до видимости. вопрос не стоит в том как сделать то или иное решение. проблема в том что у метода есть прокрутка до видимого экрана, но этот видимый экран не учитывает слои
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 709
Баллы
113
а почему он что то должен учитывать , если в качестве входного параметра это или элемент или координаты ? это комплексная задача и она явно лежит не на методе FullEmulationMouseMoveToHtmlElement
это просто движение в заданные координаты. не более. слои учитывать надо самому. еще раз повторю, есть метод взять элемент по координатам. можно сравнить с нужным. и удалить если не совпал. вот и все решение
 

gmr

Client
Регистрация
05.12.2014
Сообщения
55
Благодарностей
12
Баллы
8
мне не нужно решение, я найду его сам, спасибо за содействие. достаточно заключения от команды разработки, что идеологически работает как и должно или есть противоречие
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 709
Баллы
113
мне не нужно решение, я найду его сам, спасибо за содействие. достаточно заключения от команды разработки, что идеологически работает как и должно или есть противоречие
аааа, я понял это в последнее время пошел такой тренд , чуть какой вопрос так сразу в баги постить вместо того что бы в теме вопросы и обсуждения свои вопросы задавать.
Да ты не нервничай, я не хотел всучивать решение, я просто наводящие вопросы задаю, так как перед тем как нажать кнопочку "У меня тот же баг", я хотел уточнить в чем же баг. Просто в упор не вижу в этой ситуации никакого бага. А если ты не знал, то устранение багов зависит от количества нажавших на эту кнопочку. Поэтому если никто не поймет в чем баг, то и никто ничего править то же не будет. Ради твоего же вопроса стараюсь, справки навожу.
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 709
Баллы
113
тем более что шаблон то который прикреплен в топике , отрабатывает вообще без ошибок :-) клик по теме Новости проходит без каких либо эксцессов.
 

gmr

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

тем более что шаблон то который прикреплен в топике , отрабатывает вообще без ошибок :-) клик по теме Новости проходит без каких либо эксцессов.
зависит от размеров экрана, под спойлером спрятал скриншот
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 709
Баллы
113
конечно, конечно менеджер.... он все решает :-)
раз уж пошла такая пьянка , то хотелось бы узнать сразу ответ у менеджера и в смежной теме. возможно они коррелируют очень сильно.
вот элемент который находиться в меню , но не видим пока меню не раскрыто, по всем параметрам определяется как видимый. как так ?
это вот тоже вопрос из разряда z-слоев и иных измерений. наверно тут будет уместно все это объединить.
 

gmr

Client
Регистрация
05.12.2014
Сообщения
55
Благодарностей
12
Баллы
8
вот элемент который находиться в меню , но не видим пока меню не раскрыто, по всем параметрам определяется как видимый. как так ?
это вот тоже вопрос из разряда z-слоев и иных измерений. наверно тут будет уместно все это объединить.
звучит как баг, скинь, пожалуйста, ссылку на тему в которой это обсуждается
 

gmr

Client
Регистрация
05.12.2014
Сообщения
55
Благодарностей
12
Баллы
8
похоже дело в слоях и видимость должна проверяться не от свойств узла, а от иерархии относительно верхнего слоя. по идее даже прозрачность не столь важна, если самый верхний слой перекрывает всю область видимости, то пользователь не сможет кликнуть по элементу внутри(кликнуть можно, но если клик произошел минуя слой, то это уже не пользовательский клик)
 

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 480
Благодарностей
3 356
Баллы
113
И не должен. Он возвращает не bool, а void и о результате его работы не узнать.

Перенёс вашу тему в предложения.
 

gmr

Client
Регистрация
05.12.2014
Сообщения
55
Благодарностей
12
Баллы
8
нашел изображение с иллюстрацией слоев
56620
сделать это можно самостоятельно, открыв dev tools -> more tools-> layers
так выглядит форум сбоку. нагляднее будет самостоятельно открыть и покрутить
56621
Он возвращает не bool, а void и о результате его работы не узнать.
зачем нужен результат его работы? чтобы понять что находится под текущими координатами отдельный метод не нужен, все уже есть и выше @Phoenix78 приводил пример. FullEmulationMouseMoveToHtmlElement ведет мышь и прокручивает страницу до появления точки в границах экрана, а контент мы видим(full emulation - подразумевает подобие человеческого поведения) с учетом всех перекрывающих элементов по иерархии, если бы он не прокручивал, а лишь двигал мышь по экрану, то вопросов бы не было совсем
 
Последнее редактирование:

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