py_seloc
Проект по поиску коротких локаторов, включая поиск по нескольким страницам.
Запускать через seloc.pyw [для консоли можно использовать main.py - только одна страница]
Работа с браузером построена на использовании библиотеки PyChromeDevTools: https://github.com/marty90/PyChromeDevTools
При использовании поиска на Активной странице или страниц по ссылкам из списка браузер Chrome должен быть запущен в режиме отладки: google-chrome --remote-debugging-port=9222 --remote-allow-origins=*
Можно из приложения просто нажать кнопку 'Chrome Run'.
Удобно использовать, когда для доступа к конкретной странице требуется пройти авторизацию. (т.е. заранее в браузере авторизоваться, до нажатия кнопки 'GO').
Для корректной работы DevTools не должен быть открыт в Chrome (особенно в отдельном окне).
Можно вместо ссылок на страницы использовать пути к HTML-файлам в системе (можно вперемешку в URL).
'Find in HTML' - проверить сколько элементов выдаст станица по селектору (селектор списывается в длинную строчку ниже)
Ctrl+C и Ctrl+V не работают - вместо них используйте Ctrl+Insert и Shift+Insert. При закрытии приложения данные в буфере не сохранятся.
Работает следующим образом:
- crome запускается в debug режиме
- заходим на нужный сайт (логинимся)
- в утилите указываем название (кнопки)
- запускаем утилиту (подключается к crome через PyChromeDevTools, забирается страница активной вкладки)
- через методы Beautiful Soap вычисляется полный css-селектор
- селектор проверяется - поиск на странице по нему выдаёт единственный элемент
- получаем короткий селектор:
- берём последний css class - проверяем сколько элементов выдается, если больше одного, то двигаясь по DOM-у вверх и накапливая родителей составляем новый селектор останавливаемся, когда селектор выдаст один элемент.