Ошибка поиска html

ajurka

Новичок
Регистрация
13.07.2024
Сообщения
9
Благодарностей
0
Баллы
1
Здравствуйте, у меня шаблон который сам делает публикации на фейсбуке, и там когда нажимает на кнопку выдает периодически ошибку что html элемент не найден, прочитав немного форум и погуглив в интернете я так понял что это из-за того что объект меняет свой класс чтобы запутать роботов, но я так и не понял как решить эту проблему, и не нашел как через xPath сделать навигацию на элемент, можете пожалуйста как нибудь поподробнее объяснить нубчику?
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 685
Благодарностей
4 640
Баллы
113
тебе нужно продумывать такой xpath, который будет выглядеть стабильным не смотря на смены классов и прочих динамических атрибутов. В таких ситуациях его основой может быть статический текст элементов. Не обязательно именно искомых, можно, например искать братский элемент по какому-то тексту, а за тем за счет осей xpath выстраивать путь к желанному
 
  • Спасибо
Реакции: ajurka

gospodinkot

Client
Регистрация
04.03.2019
Сообщения
130
Благодарностей
33
Баллы
28
или, как вариант использовать кубик "поиск по картинке". Если раз кнопку словил, то как правило будет нормально работать. Я его пробую прежде чем идти в xpath. в 8 из 10 случаев спасает.
Но, конечно же, правильный xpath будет стабильнее.
 
  • Спасибо
Реакции: ajurka

ajurka

Новичок
Регистрация
13.07.2024
Сообщения
9
Благодарностей
0
Баллы
1
тебе нужно продумывать такой xpath, который будет выглядеть стабильным не смотря на смены классов и прочих динамических атрибутов. В таких ситуациях его основой может быть статический текст элементов. Не обязательно именно искомых, можно, например искать братский элемент по какому-то тексту, а за тем за счет осей xpath выстраивать путь к желанному
или, как вариант использовать кубик "поиск по картинке". Если раз кнопку словил, то как правило будет нормально работать. Я его пробую прежде чем идти в xpath. в 8 из 10 случаев спасает.
Но, конечно же, правильный xpath будет стабильнее.
спасибо за советы, я пытаюсь с помощью xpath это сделать, но пока не очень получается, может кто-то может с этим помочь? даже за денежное вознаграждение можем договориться
 

ajurka

Новичок
Регистрация
13.07.2024
Сообщения
9
Благодарностей
0
Баллы
1
тебе нужно продумывать такой xpath, который будет выглядеть стабильным не смотря на смены классов и прочих динамических атрибутов. В таких ситуациях его основой может быть статический текст элементов. Не обязательно именно искомых, можно, например искать братский элемент по какому-то тексту, а за тем за счет осей xpath выстраивать путь к желанному
можешь помочь с этим?
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 685
Благодарностей
4 640
Баллы
113

Demiz

Client
Регистрация
19.12.2017
Сообщения
175
Благодарностей
108
Баллы
43
Здравствуйте, у меня шаблон который сам делает публикации на фейсбуке, и там когда нажимает на кнопку выдает периодически ошибку что html элемент не найден, прочитав немного форум и погуглив в интернете я так понял что это из-за того что объект меняет свой класс чтобы запутать роботов, но я так и не понял как решить эту проблему, и не нашел как через xPath сделать навигацию на элемент, можете пожалуйста как нибудь поподробнее объяснить нубчику?
Кидай скрин дерева элементов и кнопку куда жмякаешь, составим
 
  • Спасибо
Реакции: ajurka

ajurka

Новичок
Регистрация
13.07.2024
Сообщения
9
Благодарностей
0
Баллы
1

ajurka

Новичок
Регистрация
13.07.2024
Сообщения
9
Благодарностей
0
Баллы
1
Кидай скрин дерева элементов и кнопку куда жмякаешь, составим
клик сюда
Вот, дерево элементов, правда сейчас я сделал все таки через xPath, выглядит вот так, правда он абсолютно в рандомный момент не нажимается почему-то, не находит элемент так понимаю, хотя если запускаю вот так посмотреть все работает, только загружаю в зеннопостер с другими проектами и начинается вот это
 

rdjt

Client
Регистрация
01.07.2022
Сообщения
24
Благодарностей
8
Баллы
3
клик сюда
Вот, дерево элементов, правда сейчас я сделал все таки через xPath, выглядит вот так, правда он абсолютно в рандомный момент не нажимается почему-то, не находит элемент так понимаю, хотя если запускаю вот так посмотреть все работает, только загружаю в зеннопостер с другими проектами и начинается вот это
Все норм у тебя с xPath, он вполне рабочий //span[text()='Напишите что-нибудь...'] , скорее всего твоя прокся просто страницу не прогружает и его не находит, в случае выхода по красной ветке направь его на C# кубик с таким содержимым
C#:
instance.ActiveTab.MainDocument.EvaluateScript("location.reload(true)");
и потом назад на поиск. Ну и время ожидания елемента увеличь если прокся медленная. Количество попыток так же можно добавить чтобы не зацикливать шаблон.

Если не уверенен, что все аккаунты на ру языке добавляй вариации под инглиш //span[text()='Напишите что-нибудь...' or text()='Write something...']
 
Последнее редактирование:
  • Спасибо
Реакции: ajurka и Demiz

ajurka

Новичок
Регистрация
13.07.2024
Сообщения
9
Благодарностей
0
Баллы
1
Все норм у тебя с xPath, он вполне рабочий //span[text()='Напишите что-нибудь...'] , скорее всего твоя прокся просто страницу не прогружает и его не находит, в случае выхода по красной ветке направь его на C# кубик с таким содержимым
C#:
instance.ActiveTab.MainDocument.EvaluateScript("location.reload(true)");
и потом назад на поиск. Ну и время ожидания елемента увеличь если прокся медленная. Количество попыток так же можно добавить чтобы не зацикливать шаблон.

Если не уверенен, что все аккаунты на ру языке добавляй вариации под инглиш //span[text()='Напишите что-нибудь...' or text()='Write something...']
Спасибо
Прокси не использую, просто на сервер все закинул и так работает, попробую выполнить эти рекомендации, спасибо за советы, надеюсь поможет
 

ajurka

Новичок
Регистрация
13.07.2024
Сообщения
9
Благодарностей
0
Баллы
1
Все норм у тебя с xPath, он вполне рабочий //span[text()='Напишите что-нибудь...'] , скорее всего твоя прокся просто страницу не прогружает и его не находит, в случае выхода по красной ветке направь его на C# кубик с таким содержимым
C#:
instance.ActiveTab.MainDocument.EvaluateScript("location.reload(true)");
и потом назад на поиск. Ну и время ожидания елемента увеличь если прокся медленная. Количество попыток так же можно добавить чтобы не зацикливать шаблон.

Если не уверенен, что все аккаунты на ру языке добавляй вариации под инглиш //span[text()='Напишите что-нибудь...' or text()='Write something...']
можно пожалуйста чуть подробнее о том как добавить количество попыток чтобы не зацикливать или где можно подробнее об этом узнать? я не нашел понятный мне материал...
 

volody00

Client
Регистрация
06.09.2016
Сообщения
897
Благодарностей
920
Баллы
93
Сначала от этого кубика проведи красную ветку и если на неё вышло, возвращай что-то вроде "bad xpath". Далее в Bad end добавь логику if если в переменной "bad xpath", то сохранить DOM стр (табы=>данные=>DOM). Далее открываешь эту сохраненную страницу в project maker и смотришь, почему твой xpath не работает
 
  • Спасибо
Реакции: ajurka

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