Помогите проверить кликабельность кубика на C# через XPath

Azakim

Client
Регистрация
25.07.2021
Сообщения
165
Благодарностей
30
Баллы
28
Код выполняется, но при клике по элементу - значение в строку не передается, подскажите пожалуйста что я упустил:dz:
//day
stringer_day = project.Profile.BornDay;
Thread.Sleep(new Random().Next(1500,3000));
day = Act.FindElementByXPath("//div[@class=\"Signup-DateOfBirthChooser__day\"]",0);
if(!day.IsVoid){project.SendInfoToLog("HtmlElement найден!");}
else{project.SendInfoToLog("Не найден!");}

//-----------------//Эмуляция мыши\\--------------//

//Делаем прокрутку на это расстояние
instance.ActiveTab.FullEmulationMouseWheel(day,2, 0);
//Ведём курсор мышки к кнопке
instance.ActiveTab.FullEmulationMouseMoveToHtmlElement(day);
//Кликаем
instance.ActiveTab.FullEmulationMouseClick("left", "click");
Thread.Sleep(new Random().Next(3000,3500));
//Заполняем
day.SetValue(stringer_day.ToString(),"Full",true);
Помогите проверить кликабельность кубика на C# через XPath ,в чем может быть проблема ,раз значение не передается, заранее спасибо :cd: ):
 

Azakim

Client
Регистрация
25.07.2021
Сообщения
165
Благодарностей
30
Баллы
28
В общем все работает хорошо ,пришлось прописать несколько путей XPath
 

Zoloo

Client
Регистрация
19.06.2020
Сообщения
122
Благодарностей
10
Баллы
18
на сайте один из трех XPath путей

//a[@id='js-XFUniqueId9']
//a[@id='js-XFUniqueId8']
//a[@id='js-XFUniqueId7']

по частоте появления.

Надо сделать клик по первому (одному), который есть на сайте. (Выбор, того, который есть и, если больше одного, то стоит первым)

Или может можно как то модифицировать XPath, чтобы он учитывал все три возможности - ту, которая в данный момент присутствует и является первой.

Т.е. выбор первого подобного элемента на странице. [1?]

Остальные подобные элементы на странице не должны попасть
 

Azakim

Client
Регистрация
25.07.2021
Сообщения
165
Благодарностей
30
Баллы
28
на сайте один из трех XPath путей

//a[@id='js-XFUniqueId9']
//a[@id='js-XFUniqueId8']
//a[@id='js-XFUniqueId7']

по частоте появления.

Надо сделать клик по первому (одному), который есть на сайте. (Выбор, того, который есть и, если больше одного, то стоит первым)

Или может можно как то модифицировать XPath, чтобы он учитывал все три возможности - ту, которая в данный момент присутствует и является первой.

Т.е. выбор первого подобного элемента на странице. [1?]

Остальные подобные элементы на странице не должны попасть
Можно сделать это спомощью оператора |
в одну строку это будетвыглядеть вот так //a[@id='js-XFUniqueId9']|//a[@id='js-XFUniqueId8']|//a[@id='js-XFUniqueId7']. Таким образом оператор обьеденит результат ,в рамках котрого опредлит оптимальный из путей
 
  • Спасибо
Реакции: Zoloo

Zoloo

Client
Регистрация
19.06.2020
Сообщения
122
Благодарностей
10
Баллы
18
Можно сделать это спомощью оператора |
в одну строку это будетвыглядеть вот так //a[@id='js-XFUniqueId9']|//a[@id='js-XFUniqueId8']|//a[@id='js-XFUniqueId7']. Таким образом оператор обьеденит результат ,в рамках котрого опредлит оптимальный из путей
оператор | это
и \\ или?

((первый раз столкнулся, что BBcode в редакторе сообщений {здесь на форуме, очевидно, что не только здесь} не понимает пробелов и лепит все слова вместе))

Пытался сделать подобным образом)) правда пути выглядели по другому))

Благодарю) буду пробовать!

есть сомнения, что он при этом будет выбирать именно первую ссылку.
Первые две скорее всего единоналичные. Хотя далеко не факт!
А вот 3 присутствует (может присутствовать, может нет) одновременно с одной из первых двух

Нужен выбор именно первого элемента
 
Последнее редактирование:
  • Спасибо
Реакции: Azakim

Azakim

Client
Регистрация
25.07.2021
Сообщения
165
Благодарностей
30
Баллы
28
оператор и \\ или?

Пытался сделать подобным образом)) правда пути выглядели по другому))
| - одинарное "или")Да все верно вот такой синтаксис написания => [xpath]|[xpath]
 
  • Спасибо
Реакции: Zoloo

Zoloo

Client
Регистрация
19.06.2020
Сообщения
122
Благодарностей
10
Баллы
18
Можно сделать это спомощью оператора |
в одну строку это будетвыглядеть вот так //a[@id='js-XFUniqueId9']|//a[@id='js-XFUniqueId8']|//a[@id='js-XFUniqueId7']. Таким образом оператор обьеденит результат ,в рамках котрого опредлит оптимальный из путей
все вместе не сработали.
Убрал в первом конкретном случае, оставил только первый элемент //a[@id='js-XFUniqueId9']
так этот этап сработал.

Там пробела между | и // быть не должно?
Вот так | // ??

так тоже не работает

и точка в конце ставится?
 
Последнее редактирование:

Azakim

Client
Регистрация
25.07.2021
Сообщения
165
Благодарностей
30
Баллы
28
все вместе не сработали.
Убрал в первом конкретном случае, оставил только первый элемент //a[@id='js-XFUniqueId9']
так этот этап сработал.

Там пробела между | и // быть не должно? <= пробела быть не должно
Вот так | // ?? <= Да вот так

так тоже не работает

и точка в конце ставится? <= нет точка не нужна , я ее не заметил когда копировал текст
Как только поправите синтаксические недочеты в XPath , должно корректно работать. При ином исходе ,нужно править сам путь. Могу предположить ,что=> //a[@id='js-XFUniqueId9'] путь содержит рандомные символы, которые могут меняться. Нужно искать "крепкого" предка или писать путь подробней
 
  • Спасибо
Реакции: Zoloo

Azakim

Client
Регистрация
25.07.2021
Сообщения
165
Благодарностей
30
Баллы
28
*коммент в теле Вашего вопроса выше если что:ce:
 
  • Спасибо
Реакции: Zoloo

Azakim

Client
Регистрация
25.07.2021
Сообщения
165
Благодарностей
30
Баллы
28
все вместе не сработали.
Убрал в первом конкретном случае, оставил только первый элемент //a[@id='js-XFUniqueId9']
так этот этап сработал.

Там пробела между | и // быть не должно?
Вот так | // ??

так тоже не работает

и точка в конце ставится?
И ещё => //a[@id='js-XFUniqueld9' Привязываться к динамическим атрибутам ошибочный путь
 
  • Спасибо
Реакции: Zoloo

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