Выполнение действия HtmlElement Не найден HTML элемент, по условиям поиска

taktreba

Client
Регистрация
02.02.2018
Сообщения
50
Благодарностей
0
Баллы
6
Помогите пожалуйста разобраться как выследить и убить эту ошибку?
Я поставил на BED END "сделать скриншот" и на нем показан момент где следующим по идее у меня идет нажатие на кнопку "регистрация".
В 10 потоках, половина срабатывает, половина нет. Уже как только не менял событие клик на "регистрацию" и оп id и по text, и поставил c# код который дожидается загрузки страницы...

не могу победить эту ошибку...

зы: или скрин показывает момент после ошибки? может она у меня возникает на моменте "авторизоваться", а не после того "регистрация"
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 607
Благодарностей
4 598
Баллы
113
правая кнопка по логу в зенно - можно скопировать айди блока, на котором произошла ошибка. Через поиск в пм можно по айди этот блок найти. Ну и + совет это сохранять ещё и DOM страницы при ошибке. Будет ясно, что там за атрибуты на элементе, поменялось ли что-то или нет
 

taktreba

Client
Регистрация
02.02.2018
Сообщения
50
Благодарностей
0
Баллы
6

doc

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

taktreba

Client
Регистрация
02.02.2018
Сообщения
50
Благодарностей
0
Баллы
6
ctrl+F в пм. Вставляешь туда айди из лога
вы мне уже сильно помогли, еще вопрос, я нашел этот блок, а что ему может не нравится? находит кнопку по id... использую прокси
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 607
Благодарностей
4 598
Баллы
113
вы мне уже сильно помогли, еще вопрос, я нашел этот блок, а что ему может не нравится? находит кнопку по id... использую прокси
Ну если на скринет кнопка есть, а экшн её не находит, значит атрибуты поиска изменились. Для анализа нужно также сохранять DOM
 

taktreba

Client
Регистрация
02.02.2018
Сообщения
50
Благодарностей
0
Баллы
6
кстати скрин вообще не то место показывает
 

taktreba

Client
Регистрация
02.02.2018
Сообщения
50
Благодарностей
0
Баллы
6

doc

Client
Регистрация
30.03.2012
Сообщения
8 607
Благодарностей
4 598
Баллы
113
скрин показывает то. Просто проблема могла возникнуть раньше. Например, нажатие какой-то кнопки произошло н еправильно или не произошло и в итоге другая страница не загрузилась и на ней уже не сработал экшн. DOM - html страницы на текущий момент. Находится в переменных окружения
 

taktreba

Client
Регистрация
02.02.2018
Сообщения
50
Благодарностей
0
Баллы
6

doc

Client
Регистрация
30.03.2012
Сообщения
8 607
Благодарностей
4 598
Баллы
113
не совсем понял что с ним делать, как, куда и зачем сохранять DOM - html страницы
Сохраняешь код страницы, чтобы анализировать при ошибках. Почему не нажалась кнопка, почему не нашёлся элемент и т.д.
 

taktreba

Client
Регистрация
02.02.2018
Сообщения
50
Благодарностей
0
Баллы
6
Сохраняешь код страницы, чтобы анализировать при ошибках. Почему не нажалась кнопка, почему не нашёлся элемент и т.д.
а в списке атрибутов есть группы, начинается с нуля у id и дальше 2 - class, 3 - innehtml

что это значит? приоритет поиска? если да, и я добавлю left - 306 то есть отступ кнопки от края (страницы или браузера?), я улучшу поиск этой кнопки?
 

taktreba

Client
Регистрация
02.02.2018
Сообщения
50
Благодарностей
0
Баллы
6
почему не нашёлся элемент и т.д.
я скопировал page.Source и вставил в IDE, там я обнаружил что у меня две кнопки по id - button_register. может это и есть ошибкой поиска кнопки?
 

taktreba

Client
Регистрация
02.02.2018
Сообщения
50
Благодарностей
0
Баллы
6
и что интересно в тестовом режиме не разу не появилась это ошибка
 

taktreba

Client
Регистрация
02.02.2018
Сообщения
50
Благодарностей
0
Баллы
6
Поднимука темку, так как темка ООЧЕНЬ актуальна, создал еще один проект. Использую ProxyChecher. И тоже самое, без прокси все кнопки работают хорошо, а с прокси не которые кнопки не находит и игнорирует и выдает ошибку.
Что пробовал и НЕ помогло:
- после загрузки страницы ставил кубик С# с кодом "ждать пока загрузится вся страница"
- Принудительно менял id элемента и обращался к нему
- менял и обращался к разным свойствам кнопки

Если я верно подметил все проблемные элементы это button.
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 607
Благодарностей
4 598
Баллы
113
проблемные не кнопки, а прокси. На момент нажатия прокси мертва и никакой реакции, соответственно, от нажатия не будет
 

taktreba

Client
Регистрация
02.02.2018
Сообщения
50
Благодарностей
0
Баллы
6
от нажатия не будет
что делать? закрывать проект и запускать по новой и брать другой прокси?

только уточню перед этим, я беру проксю - загружаю первую страницу - нажимаю авторизоваться - проходит весь процесс - и тут БАМ! прокси умерла и кнопка "далее" уже не работает?
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 607
Благодарностей
4 598
Баллы
113
паршивые прокси могут погибнуть в любой момент, ровно также, как и ожить. Что делатьв таких случаях - решать тебе, но адекватно продолжить с того места скорее всгео не получится
 
  • Спасибо
Реакции: taktreba

taktreba

Client
Регистрация
02.02.2018
Сообщения
50
Благодарностей
0
Баллы
6
ровно также, как и ожить
все равно меня смущает название ошибки ^^
"Выполнение действия HtmlElement Не найден HTML элемент, по условиям поиска" такое ощущение что нет элемента на странице в момент нажатия на него
Прокомментируй пожалуйста.
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 607
Благодарностей
4 598
Баллы
113
у тебя есть скриншот, у тебя есть DOM страницы. Проверь по ним, есть такой элемент или нет
 

taktreba

Client
Регистрация
02.02.2018
Сообщения
50
Благодарностей
0
Баллы
6
у тебя есть скриншот, у тебя есть DOM страницы. Проверь по ним, есть такой элемент или нет
у меня начинают опускаться руки ((
как я сделал

табы -> данные -> DOM -> парсить результат -> regex id="button_register" -> заношу в переменную find_attr
дальше смотрю -> если переменная пустая -> выходим с проекта esle продолжаем
и блин! дальше валится в одном и том же месте?!?!? сразу тут клик не выполняется (((

я правильно проверил элемент?
я смотрю дом связл всю дом структуру, запишнул в редактор, и вижу что там тупо два одинаковых участка кода, строк по 200, с одинаковыми id и прочем, мож изза этого? ((
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 607
Благодарностей
4 598
Баллы
113
я писал о полном сохранении DOM при ошибках для дальнейшего анализа вручную
 

taktreba

Client
Регистрация
02.02.2018
Сообщения
50
Благодарностей
0
Баллы
6
я писал о полном сохранении DOM при ошибках для дальнейшего анализа вручную
табы -> данные -> DOM -> парсить результат -> regex id="button_register" -> заношу в переменную find_attr
я не пойму, так или нет так я сделал? я в файл сохраняю {-Page.Dom-} я не правильно делаю?
 

taktreba

Client
Регистрация
02.02.2018
Сообщения
50
Благодарностей
0
Баллы
6
продолжаем решать проблему https://www.olx.ua/account/ в этом месте

по сценарию, переходим на сайт, нажимаем "мой профиль", открывается страница авторизации, нажимаю вкладку "регистрация", ДАЛЬШЕ ВНИМАНИЕ, делаю проверку - взять ДОМ ищем "id="button_register" если не находим сохраняем дом в файл и заканчиваем скрипт, смотрю этот файл и действительно нет этого элемента "id="button_register", почему? как такое может быть? вставил перед загрузкой страница C# код
System.Threading.Thread.Sleep(20000);
instance.ActiveTab.WaitDownloading();

пробовал разные тайм ауты

Все делаю через прокси. Один юзер говорит что дело в проксях, мол, галимые прокси могут в любой момент отвалится, второй говорит что не в прокси дело, так как ошибка в 90% случаев в одном и том же месте... кстати остальные 10% в этом месте валится ошибка без мой проверки
 

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