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

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

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

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