C# - получение координат объекта

xuroo

Client
Регистрация
07.10.2016
Сообщения
161
Благодарностей
41
Баллы
28
Здравствуйте. Пытаюсь сделать в C# получение координат, чтобы потом по ним мышкой двигать, этот код мне сгенерила сама Зенка - он работает.
Но проблема в том что когда я пытаюсь получить leftinbrowser или к примеру topInTab код выдает значение 0
Хотя если делать кубик и потом его конвертировать в C# - код остается прежний. И так же получает значение 0. Конечно значение там не 0 и стандартный кубик его считывает верно.

Как я понимаю это баг зенки? Не может же он брать одно а другое не брать)

C#:
// Конструктор действий, тип Get
HtmlElement he = instance.ActiveTab.GetDocumentByAddress("0").FindElementByTag("form", 0).FindChildByName("email");
if (he.IsVoid) return -1;

// Получить значение атрибута "topInTab"
string attribute = he.GetAttribute("topInbrowser");
project.Variables["leftinbrowser"].Value = Convert.ToString(attribute);
 

xuroo

Client
Регистрация
07.10.2016
Сообщения
161
Благодарностей
41
Баллы
28
Хотя если делать кубик не получения координат а скажем ввода данных, и конвертить в C# - то данные, с.ка, вводит)
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 691
Баллы
113
string attribute ..... Convert.ToString(attribute) ..... ты тут строку в строку конвертируешь. конечно у тебя 0 будет.
 

xuroo

Client
Регистрация
07.10.2016
Сообщения
161
Благодарностей
41
Баллы
28
string attribute ..... Convert.ToString(attribute) ..... ты тут строку в строку конвертируешь. конечно у тебя 0 будет.
Спасибо за ответ) Но нет)
Это мои сплиты, чтобы заработало)
С этим topinbrowser ищется норм, поэтому не убрал перед публикацией.
Убрал эту конвертацию, topinbrowser - 800 leftinbrowser - 0
Как и было. Подозреваю что это как то связано со совпадением. Потому что элемент с совпадением 1, а если выбрать 0 то нули и показывает в стандартном кубике. Не подскажете как установить совпадение 1?

FindChildByName("email", 1); - так не сработало
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 691
Баллы
113
открой devtools и ручками исследуй html страницу. посмотри сколько элементов с тэгом form и сколько в них дочек с именем email
а лучше прямо в нем же провести поиск по xpath или по селекторам.
 
  • Спасибо
Реакции: xuroo

doc

Client
Регистрация
30.03.2012
Сообщения
8 607
Благодарностей
4 599
Баллы
113
Спасибо за ответ) Но нет)
Это мои сплиты, чтобы заработало)
С этим topinbrowser ищется норм, поэтому не убрал перед публикацией.
Убрал эту конвертацию, topinbrowser - 800 leftinbrowser - 0
Как и было. Подозреваю что это как то связано со совпадением. Потому что элемент с совпадением 1, а если выбрать 0 то нули и показывает в стандартном кубике. Не подскажете как установить совпадение 1?

FindChildByName("email", 1); - так не сработало
FindChildByAttribute("*", "name", "email", "text", 1)
на счёт * не уверен
 
  • Спасибо
Реакции: xuroo

xuroo

Client
Регистрация
07.10.2016
Сообщения
161
Благодарностей
41
Баллы
28
Дело было в том что зенки не точно определяет координаты если переводить кубик в C# стандартным способом.
Если добавлять координаты руками xpath все ок
 

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