Xpath не работает в подгружаемом коде - возможно исправить?

Регистрация
16.12.2015
Сообщения
48
Благодарностей
2
Баллы
8
В одноклассниках в личных сообщениях не могу отправить фото. Написал путь xpath а он не работает хотя должен работать на все сто. Код подгружается при открытии окна и изчезает после закрытия. Может кто занает как это сделать или обойти!
 

radv

Client
Регистрация
11.05.2015
Сообщения
3 788
Благодарностей
1 952
Баллы
113
Так может xpath не работает, потому что дерево элементов динамическое и атрибуты меняются каждый раз, а значит и xpath может не срабатывать. Попробуйте составить другой xpath
 

username666

Client
Регистрация
20.03.2020
Сообщения
211
Благодарностей
89
Баллы
28
В одноклассниках в личных сообщениях не могу отправить фото. Написал путь xpath а он не работает хотя должен работать на все сто. Код подгружается при открытии окна и изчезает после закрытия. Может кто занает как это сделать или обойти!
Советую проверить правильность вот этих кубиков перед xpath и самим кликом , возможно дело в этом, мало ли)) А так xpath в студию, а то можно долго гадать
98392
 
Регистрация
16.12.2015
Сообщения
48
Благодарностей
2
Баллы
8
Спасибо за ответы. Xpath составлен на коренных отрибутах которые не меняются. Проект пишу на C# в кубиках ошибки точно нет.
//msg-menu[contains(@class,'attachment-menu')]/descendant::*[text()='Фото']
 

username666

Client
Регистрация
20.03.2020
Сообщения
211
Благодарностей
89
Баллы
28
Я не очень умею правильно составлять x path, но всегда составляю таким образом и все работает)попробуйте этот вариант в 2 кубика:
//*[@data-tsid="open_attach_menu_button"]

//*[@key="photo-upload"]
 
Регистрация
16.12.2015
Сообщения
48
Благодарностей
2
Баллы
8
То-же, первый путь отрабатывает, а второй нет.
 

username666

Client
Регистрация
20.03.2020
Сообщения
211
Благодарностей
89
Баллы
28
У меня все отрабатывает на 100%. Кубик файлы для загрузки был выполнен перед этими действиями? Указан там путь?
 

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 518
Благодарностей
3 371
Баллы
113
Как помню, там используется ShadowDOM, что xpath не поддерживает.
Остаётся лишь получать родительский к нему элемент и редактировать содержимое, либо пробовать через JS.
 
Регистрация
16.12.2015
Сообщения
48
Благодарностей
2
Баллы
8
Да вот код:
instance.SetFileUploadPolicy("ok", "");
instance.SetFilesForUpload(project.Directory + @"\img\3.jpg");
 
Регистрация
16.12.2015
Сообщения
48
Благодарностей
2
Баллы
8
Как помню, там используется ShadowDOM, что xpath не поддерживает.
Остаётся лишь получать родительский к нему элемент и редактировать содержимое, либо пробовать через JS.
Спасибо.
 
Последнее редактирование модератором:
Регистрация
16.12.2015
Сообщения
48
Благодарностей
2
Баллы
8
Благодарю за помощь. Разобрался вот рабочая схема:
//*[@data-tsid='open_attach_menu_button']"
//div[contains(@class,'buttons __right')]/descendant::input[last()-1]
 

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