Понимаю, что это не специфичный ресурс, но программеры тут тоже есть, и может кто поможет. Разбираюсь со связкой php-webdriver плюс selenium. ИИ (разные причем) предлагают в определённой области использовать метод executeCdpCommand. Но его нет в php-webdriver/php-webdriver Собственно в чем вопрос то. Что ChatGpt, что Gemini упорно утверждают, что есть версия 1.18.0, а executeCdpCommand была введена с версии 1.16.0 Но на GitHub последняя версия 1.15.2... Что за чудеса такие?
Спрашиваю Gemini:
на гитхабе я зашел в таги, последний таг 1.15.2 от Nov 21, 2024
Отвечает чудо машина: Вы абсолютно правы, что это очень странно!
Я только что проверил официальный репозиторий php-webdriver/php-webdriver на GitHub, и там ситуация следующая:
Последний стабильный тег: 1.18.0 (выпущен 13 февраля 2024 года)
Предпоследний стабильный тег: 1.17.0 (выпущен 28 декабря 2023 года)
Тег 1.16.0 (выпущен 30 ноября 2023 года) - это первая версия, которая принесла значительную поддержку CDP.
Я пытаюсь запустить браузер opera в более новой версии selenium 4.12. Но на данный момент я не смогла найти решение. Возможно ли использовать WebDriverManager.operadriver().setup() для получения драйвера?
На данный момент реализация работает с указанием пути
private WebDriver createOperaDriver() { WebDriverManager.operadriver().setup(); System.setProperty("webdriver.opera.driver", "C:\\Users\\anser\\operadriver.exe"); OperaOptions options = new OperaOptions(); options.addArguments("-start-maximized"); return new OperaDriver(options); }
Но есть ли решение не указывать путь к драйверу, а использовать только WebDriverManager.operadriver().setup()?
В мире IT индустрии требования к кандидатам постоянно меняются. Однако некоторые навыки и умения остаются актуальными независимо от времени. На этой неделе мы анализировали открытые вакансии в области QA (Quality Assurance, или контроля качества), чтобы выяснить, какие требования и навыки востребованы на данный момент.
На первом месте по востребованности - Python. Этот язык программирования был упомянут в 39 открытых вакансиях. Python является одним из самых популярных инструментов в IT и часто используется для автоматизации тестирования, анализа данных и других задач.
Android также востребован в сфере QA - 34 упоминания. Это говорит о большом спросе на специалистов, способных работать с мобильными приложениями и платформами.
Третье место занимает Selenium (25 упоминаний), популярный инструмент для автоматизации веб-браузеров, часто используемый в тестировании.
REST, или представление состояния передачи (23 упоминания), также важно для специалистов по QA, поскольку это стандартный подход к взаимодействию веб-приложений.
Интересно, что слово "remote" (21 упоминание) также часто встречается в открытых вакансиях, что указывает на продолжающийся тренд работы на удаленке.
Среди других важных навыков и знаний, которые выделяются, - это Git (19 упоминаний), система контроля версий, необходимая для работы в команде; Agile (13 упоминаний), гибкий подход к разработке; и Docker (11 упоминаний), платформа для разработки, доставки и работы приложений.
Некоторые вакансии также подчеркивают важность командной работы (9 упоминаний) и умения работать с Confluence (9 упоминаний), платформой для совместной работы.
В то же время, есть и специфические требования, такие как знание Allure (7 упоминаний), инструмента для генерации отчетов о тестировании; Fiddler (6 упоминаний), инструмента для отладки веб-приложений;
В апреле 2023 года мы запустили необычный для нас проект - ремонтный сервис нового формата. Первого клиента нашли только в начале лета, но уже с первого проекта удалось достичь запланированной прибыли. Расскажу, как мы создали современную компанию для поколения "новых денег", которые не готовы к тому, что прораб будет класть половину стоимости ремонта себе в карман, а сроки растягиваются без ограничений и почему это оказалось прибыльным бизнесом.
Как всё начиналось
Конец 2022 года. Я работал менеджером проектов в крупной IT-компании, мой друг Антон - тимлидом в другой известной технологической компании, а Дима занимал позицию backend-разработчика в третьей. У всех стабильные зарплаты, интересные проекты - жизнь шла своим чередом, пока Антон не решил купить квартиру в новостройке.
После долгих поисков он остановился на 85-метровой квартире в ЖК около метро Саларьево - современный комплекс с подземным паркингом и зелёным двором. Как типичный программист, к поиску ремонтников он подошёл педантично: изучил десятки предложений, провёл собеседования с кандидатами. В итоге выбрал бригаду с Авито с "15-летним опытом работы".
Денис (это я:) - один из создателей сервиса
За время ремонта у Антона мы с Димой часто приезжали к нему - помочь, посоветовать, и просто поржать над очередными косяками строителей. У нас обоих за плечами был серьёзный опыт управления командами, внедрения процессов, автоматизации и контроля качества. И знаете что? Нам казалось, что главное в ремонтном бизнесе - это грамотный менеджмент и организация процессов. И на самом деле, все примерно так и есть.
День когда мы решились
Если честно, мысли о собственной ремонтной компании появились у нас задолго до этого случая. В IT-тусовке часто шутят, что в России есть три верных пути: вебкам, айти и стройка. И мы, насмотревшись на хаос в ремонтной сфере, не раз обсуждали возможность открытия своей “фирмы”.
Мы выделили основные проблемы, которые должны были исправить с помощью своего сервиса
Первое - это постоянно растущие сметы и "задранная стоимость" на работы. Ну вы серьезно? Почему для меня ремонт в квартире должен чем-то отличаться от заказа носков на Вайлдберриз? Почему-то там нет такого, что цена носков может вырасти в 2 раза за время доставки. А тут начальная смета в 1 миллион превратилась почти в 1,7! И каждый раз это "ой, тут стены кривые", "ой, а тут придется докупить", "ой, а это мы не учли".
Второе - это бесконечно растущие сроки. Это еще хуже. Как люди с опытом в менеджменте, мы прекрасно знали, что растущие сроки – это всегда раздолбайство управления и ленивые рабочие. Но тут было чуть посложнее, об этом чуть позже. У Антона обещали сделать за 4 месяца, а в итоге растянули на 8.
Третье - хитрые прорабы. Это вообще отдельная история. Когда прораб говорит "давайте я сам закуплю материалы, у меня скидки", знайте - он накинет сверху процентов 30-40. А еще есть "срочные работы", которые почему-то не были учтены в смете. И конечно, вечная классика - экономия на материалах: заказываешь одно, а привозят что-то попроще, но по той же цене.
Целевая аудитория
А параллельно с этим мы определили нашу целевую аудиторию. Чтобы выделиться на конкурентном рынке, мы решили ориентироваться на молодых IT-специалистов и представителей “современных” профессий, живущих в Москве в возрасте 30-40 лет. Тех, кто покупает квартиру в новостройке и привыкших к хорошему сервису. Кто не готов, что его будут водить за нос и разводить на деньги.
Что с ценой?
При этом очень важно было держать цены НИЖЕ, чем у других компаний, иначе на рынке просто не выжить. В премиум сегмент нужен "пропуск" в виде большого количества работ для определенного типа клиентов, поэтому нам было понятно, что "брать" много - пока что, непозволительно. Но мы нашли способ: автоматизация процессов, прямые поставки материалов, четкое планирование работ и никаких скрытых накруток. Но несбыточной мечтой это покажется только обывателю: на самом деле сервис и правда должен быть таким, вообще любой.
История первого заказа летом 2023 года
А теперь самое интересное - наш первый заказ. Это была отдельная эпопея. Начало лета 2023, звонок от потенциального клиента.
Первый клиент оказался прямо "в яблочко" - тоже айтишник (пришедший из первой контекстной рекламы в яндексе запущенной на 20 тыс.), работал в крупной компании, купил двушку в панельке 80-х годов. Причем достаточно убитую - стены местами с дырками, старый паркет, трубы помнящие еще Горбачева... Но нам, если честно, даже повезло что первый объект был не новостройкой. На старом фонде учиться легче - там хотя бы есть на что посмотреть, в отличие от новостроек, где все "сюрпризы" спрятаны в голых стенах.
Дырка в стене была ДО демонтажа. Клиент купил квартиру с "убитым" ремонтом подешевле, в надежде сэкономить
Как мы мастеров искали
Начали с поиска бригады. Вот тут был первый холодный душ - оказалось, что найти классных специалистов без своей наработанной базы очень сложно. Мастера хорошего уровня либо уже при деле, либо просят космос. А те, кто сразу соглашается - ну, вы понимаете. За две недели провели больше 10 собеседований (назовем их так😊). Причем процесс собеседования мы сразу сделали "как в айти" - тестовые задания, проверка портфолио, разбор технологий работы. Бригадиры были в шоке - некоторые прямо уходили с собеседований, когда мы начинали распрашивать про технологии укладки плитки и показывали фотографии косяков с объектов с форумов.
В итоге нашли бригаду - два брата, которые до этого работали в крупной ремонтной компании, но ушли потому что устали от "серых" схем – по отношению К НИМ ЖЕ. В основном - задержки з/п и прорабы.
В том же санузле, но уже после демонтажных и некоторых черновых работ. Братья очень помогли нам с первым ремонтом, кроме этого, они дали нам контакты проверенных рабочих, которые впоследствии делали ремонт вместе с ними
Купили первый комплект инструмента - это отдельная история на 100 тысяч рублей. Ещё сразу купили свою тепловую пушку - это из необычного. Большинство компаний привлекают "потолочников" на субподряд. Мы захотели сразу начать формировать свой инструментарий для будущих сотрудников. Зато потом эта закупка очень помогла - не зависели от того, что принесет с собой бригада. Позже, когда начали расширяться купили свою штукатурную станцию. Это, на удивление, было самой выгодной покупкой.
Первые сложности
Начали ремонт. И тут поехало... Первый сюрприз - когда начали снимать старую штукатурку, оказалось что стены буквально рассыпались. Плюс под старым линолеумом в коридоре нашли деревянный пол с насыпью под ним.
Тут был первый серьезный разговор с заказчиком. Объяснили ситуацию, показали все фотки, рассказали что сколько будет стоит в соответствии с прайс-листом. Тут очень помогло то, что мы сразу взяли за правило - фотографировать вообще все. Каждый этап, каждый слой, каждую трубу.
С материалами тоже было весело. Первый месяц я лично объездил все крупные строительные магазины в радиусе 30 км. Искал поставщиков, договаривался о скидках. Помню, как чуть не купили партию плитки по "супер-выгодной" цене, а потом выяснилось что это условно "второй сорт" - брак, который продают через "серые" схемы.
Cделали систему закупок: (Первый заказ полностью сделан из материалов, купленных в Петровиче и на маркетплейсах). Бригада присылает список - мы проверяем цены у 3-4 поставщиков и заказываем где дешевле.
Мы сразу внедрили систему ежедневных фото-отчетов и еженедельных созвонов. Плюс сделали чат в телеграме, куда скидывали все чеки, все накладные, все фотки. Такая прозрачность очень помогла - клиент видел, что мы не химичим с ценами и не пытаемся на нем нажиться.
В итоге сделали.
Братья советовали нам недостающих специалистов по ходу ремонта и постепенно, укладываясь в срок мы сдавали клиенту новый и новый этап. Честно, это было не так сложно как казалось в начале, но нужно понимать, что на самом деле, проблем по ходу ремонта и мелких трудностей было ОЧЕНЬ много, просто мы как люди привыкшие, понимали что сейчас это и есть наша работа , за которую нам платит клиент - взять на себя все заботы по ремонту. Но серьезных форс-мажоров не возникало, максимум понервничали, когда внесли предоплату потолочникам, которых нашли по объявлению, после чего они явно начали задерживать сроки, но в итоге, все обошлось. Нам и до этого было ясно, что чем быстрее мы соберем свой , хотя бы, небольшой штат, тем лучше и выгоднее. Но для этого надо быть уверенным в постоянном потоке заказов, что мы на тот момент, не могли себе позволить.
Главное - мы поняли как надо и как не надо. Все закупки только через нас. Все договоренности - только в письменном виде.
По деньгам первый проект получился условно в ноль - не считая наших вложений в инструмент и рекламу. Но мы получили бесценный опыт, наработали связи с поставщиками (если это можно назвать так пафосно) и главное - поняли, что наша модель рабочая, хотя на тот момент не были в этом до конца уверены. Наши сомнения развеяло лето 2023 года.
1/5
Наша первая работа, которую нам помогли закончить "братья", советуя недостающих мастеров на каждый этап работ. Цена работ для заказчика вышла 750 000 рублей. Летом 2023 года, за аналогичный объём работ авитовские бригады просили до миллиона(!)
Сайт и маркетинг или как мы общаемся с клиентами ещё до первого звонка
Кстати, про сайт. Первую версию мы сделали за пару вечеров на Тильде - максимально простую: фотки, цены, контакты. Знаете что? Он у нас до сих пор такой – но с значительно изменённым UI/UX. Я иногда ловлю себя на мысли - вот мы же, можем сделать что-то крутое, с личным кабинетом, онлайн-сметами... Но потом смотрю вордстат, статистику и думаю - а зачем? Клиенты находят нас, звонят, все работает. Иногда лучшее решение - самое простое.
1/2
На главной странице "в лоб" о том кто мы, наши конкурентные преимущества, специализация и примеры работ
1/2
Сразу "ярко" заявляем о действующих скидках. Кроме этого, простым текстом пытаемся общаться с клиентом и убедить его в нашем сервисе, пока что, не общаясь с ним лично - конверсия в лиды увеличилась значительно, но важно, чтобы все предложения были реальны
А вот ворд стат. За последний месяц нас искали 680 раз не считая статистики переходов по прямой ссылке. Доказательство того, что дорогой сайт не нужен. Наш стоит 6 000 рублей в год, а сделан за 20 часов
Примеры лучших работ как маркетинговый инструмент
1/4
Оставляли подобные фото с примерами работ и вотермаркой в отзывах к жилым комплексам. Отличный маркетинговый инструмент - сразу определяем нужную ЦА и бесплатно заявляем о себе. Точно знаем, что минимум один клиент был из отзывов яндекс - поэтому работает
Как мы масштабировались и разбирались в проблемах ремонта
Теперь про то, как мы начали разбираться в проблемах ремонта и потихоньку расти. Знаете, за этот год мы много думали - почему вообще ремонтные компании задерживают сроки и не могут сделать работу по первоначальной цене? И нашли несколько интересных моментов.
Первое - сроки. Тут даже копать глубоко не пришлось - сам рынок сформирован так, что клиенты просто привыкли к задержкам. "А, ну это ремонт, тут всегда так" - классическая фраза. Благо тут нам помог опыт организации процессов из айти. Четкие спринты, ежедневные отчеты, календарный план. Работает как часы, если не филонить.
Второе - вечно растущая цена. Вот это было сложнее. В новостройках еще можно точно посчитать, а во вторичке... Но благодаря наработкам этот вопрос стал гораздо яснее. При правильно организации процессов, непредвиденные работы лучше оплатить из своих средств, чем терять клиента. Только так и делается сервис.
Третье - больная тема - воровство на материалах. Тут мы конкретно закрутили гайки. Завели строгий учет, до последнего мешка штукатурки. Прорабам сразу сказали - любая жалоба от клиента на нечестность - это конец сотрудничества. Знаете что самое смешное? Когда начали работать честно, оказалось что маржа все равно хорошая. Просто многие привыкли что надо обязательно накручивать еще и еще.
Неприятные особенности прозрачного сервиса
Большинство компаний, которые начинают работать честно, быстро сдуваются. Потому что сам потребитель привык к плохому сервису. Приходишь к клиенту, говоришь "мы все сделаем четко по смете и в срок", а он смотрит с недоверием - "да ладно, так не бывает". Сейчас в 2024-м ситуация получше, но рынок все еще очень консервативный.
Продвижение или как мы брали “Новую Москву”
Наш любимый Прокшино в Новой Москве - в 2024 году, это самый перспективный район в котором покупатели - наши потенциальные клиенты
Расти начали потихоньку. Сначала сделали специальные цены для новой Москвы - там как раз много новостроек, где мы хорошо научились работать. Потом пошли заказы по рекомендациям. Когда я говорю “пошли” заказы нужно понимать, что это 1-3 заказа в месяц стабильно, что на самом деле, тогда казалось не мало. С рекламой экспериментировали забавно - оставляли визитки в подъездах (да, просто старые добрые визитки!), ставили рекламные ящики у офисов продаж в дни выдачи ключей.
Был случай, когда на одном ЖК поставили такую стойку, а через неделю риелтор оттуда сам позвонил и предложил взять себе процент, если клиент пойдет к нам.
Сейчас берем 2-5 заказов в месяц, (летом было 5 в месяц, если разделить). Большинство клиентов приходят по рекомендациям. Штат за год работы постепенно собрали свой. Трудоустроено 14 сотрудников. Если их не хватало (как летом), привлекали мастеров с которым уже работали раньше, по договору ГПХ. Просили всех регистрировать самозанятость или ИП – это было тяжело, но зато честно платим налоги по Доходы – расходы.
Как устроен процесс
Знаете, что самое сложное в ремонтном бизнесе? Нет, не поиск клиентов и не работа с материалами. Самое сложное - это выстроить систему, которая будет удовлетворять запросы клиента и при этом позволит компании зарабатывать. Мы долго думали над этим и придумали несколько интересных решений.
Начнем с оплаты. Если посмотреть на московский рынок, там забавная система - вроде бы без предоплаты, но это только за первый, самый дешевый этап. А потом - бац, и клиент должен внести 50% от всей суммы. И попробуй не внеси - бригада уйдет на другой объект. Мы сделали иначе: разбили весь ремонт на этапы (их получилось 12 для капитального ремонта), и берем предоплату только за текущий этап. То есть клиент всегда понимает, за что именно платит, и может контролировать процесс.
С договорами тоже интересно получилось. Сначала делали один стандартный, а потом поняли - люди разные, запросы разные. Сейчас у нас три варианта: просто на работы (для тех, кто сам хочет закупать материалы), на работы плюс материалы (самый популярный), и полный пакет с дизайн-проектом. Кстати, про дизайн - мы не держим штатных дизайнеров, работаем с фрилансерами. Так получается и дешевле для клиента, и качество выше - каждый дизайнер специализируется на своем стиле.
Первый образец договора, который ставили на сайт
Расчёт стоимости
Расчет стоимости работ - отдельная история. Когда начинали, было очень сложно. На рынке нет четких цен - один мастер берет 3 тысячи за квадрат стяжки, другой - тысячу, третий вообще говорит "ну давайте посмотрим по факту". Сначала работали по среднему прайсу, но часто уходили в минус по отдельным этапам - то бригада дороже встанет, то материала больше уйдет. Сейчас, когда появились постоянные сотрудники, стало проще - мы точно знаем их расценки и можем давать фиксированную цену.
Материалы
Выяснилось, что в крупных магазинах часто дешевле в сравнении с рынками стройматериалов, особенно если ловить акции. Плюс появились маркетплейсы - там вообще красота по ценам. И главное - полная прозрачность, клиент сам видит все позиции. Если находим материал дешевле - возвращаем разницу. Был случай, когда на керамограните сэкономили клиенту почти 30 тысяч - просто потому что, нашли ту же плитку в другом магазине по акции.
Как работаем сейчас
Сейчас берем 2-5 заказов в месяц, зависит от сезона и сложности объектов.
Процесс обкатан до мелочей: сначала выезд на замер, потом предварительная смета. Если клиента все устраивает - детальный расчет и договор. Дальше начинается самое интересное - согласование материалов, закупки, работа.
Особенности продвижения и подводные камни
С продвижением интересно получилось. Сначала, как все, полезли на Авито. И знаете что? Не зашло. Там своя специфическая аудитория и конкретно у нас, с Авито “ не пошло”.
Свежий пример страницы с авито в категории "Ремонт квартир". Как клиенты определяются с подрядчиком среди тысяч однотипных объявлений - хороший маркетинговый вопрос, который мы решаем, после чего полноценно "зайдём" на авито
Пробовали контекстную рекламу яндекс - тоже так себе результат. Клики дорогие, конверсия низкая. Зато отлично зашла таргетированная реклама в Instagram* (*запрещен в РФ) и реклама в районных пабликах ВКонтакте. Особенно в группах новостроек в ТГ - там как раз наша целевая аудитория.
Но главный канал - сарафанное радио. Причем работает оно интересно. Всегда знаешь , от кого пришли заказчики и проще выстраивать коммуникацию. Есть клиент - он доволен, рассказал коллегам - и понеслось. За три месяца получили еще два заказа от сотрудников той же компании. Выходит такой “корпоративный ремонт”)))
Были, конечно, и провалы в продвижении. Пытались работать с риелторами - предлагали им комиссию за клиентов. Не пошло - у них свои схемы, свои бригады. Пробовали давать рекламу в лифтах, входных группах - тоже мимо, ни одного обращения, но тут скорее из-за того что эта реклама буквально на день.
ИТОГ
Сейчас мы существуем уже чуть больше года и в целом смотрим на ремонтный рынок не так, как раньше. За это время мы сделали несколько важных заметок для себя:
Оказывается, большинство проблем в ремонте - это не технические сложности, а банальная организация процессов. Когда все четко спланировано и каждый знает что делать - даже самый сложный ремонт идет как по маслу.
Мы поняли, почему многие компании "химичат" с ценами и сроками - просто потому что не умеют нормально считать и планировать. Когда все процессы выстроены правильно, можно работать честно и все равно оставаться в плюсе.
Самое сложное - это не найти клиентов или научиться делать ремонт. Самое сложное - это переломить привычку рынка работать "по-серому". И заказчики, и исполнители настолько привыкли к непрозрачным схемам, что честный подход вызывает удивление.
Мы до сих пор учимся. Каждый объект - это новый опыт и новые вызовы (особенно по части коммуникаций с клиентами). Но главное - мы видим, что наша модель работает и пока что, нам удается держать ценник немного ниже рыночного, за счёт того что до сих пор не имеем в найме маркетологов, IT, отдела продаж и менеджеров по продажам. Стараемся нанимать именно рабочих, все остальное можно отдать на аутсорс.
Уважаемые пикабушники, были рады составить для вас эту статью! С любовью, СК Комната
На территории соседнего поселка действуют два нефтеналивных терминала, которые изрядно портят жизнь местным жителям регулярными выбросами сероводорода в атмосферу.
Местные активисты добились установки двух стационарных постов системы контроля атмосферного воздуха (СКАТ). Эти самые СКАТы периодически фиксируют превышения предельно допустимой концентрации (ПДК) сероводорода и диоксида серы в воздухе. Информация о текущем состоянии воздуха со СКАТов выводится в единую систему экологического мониторинга области (ЕСЭМ) http://ecomap.orb.ru/map/. Но, к сожалению, министерство экологии и экологическая служба доступа к архиву с информацией о превышениях экоактивистам не дают и статистику по превышениям ПДК сильно занижают, тем самым замалчивая существующую проблему.
Для того, чтобы иметь информацию о превышениях и оперировать ей на встречах с министерством и нефтяниками, явно указывая им на недостоверность их отчетов, я накидал код на питоне с использованием selenium (код ниже).
На данный момент принцип таков: открывается сайт системы мониторинга, кликается нужный СКАТ, делается скрин данных. И так по списку указанных ID СКАТов (меня интересуют только 2 из 44). Информация на сайте обновляется каждые 20 минут, так же каждые 20 минут запускается скрипт, который делает скрин, периодически я просматриваю скрины на факт превышения.
Что хочется реализовать:
1. Сохранять скрины только по факту превышения (это легко, руки пока не дошли).
2. Писать все параметры со СКАТа в базу сайта (antineft.ru), для дальнейшего анализа и построения отчетов/графиков.
3. Реализовать рассылку писем/смс местным жителям в случае наступления факта превышения ПДК.
К чему, собственно, пост: как бы вы решили такую задачу? Какие инструменты использовали?
import enum
from selenium import webdriver
from selenium.webdriver.common import action_chains
from selenium.webdriver.common.action_chains import ActionChains
from time import sleep
from PIL import Image
import pyautogui as pag
import re
import datetime
import os
#ID всех постов системы контроля атмосферного воздуха (СКАТ)
#поиск следующей точки и ее центрирование на экране
sleep(2)
element = browser.find_elements_by_xpath ("//*[@id='map-107868']/div/div[2]/div/div[2]/div/div/div[1]/div/div/div/div/div/div/div[1]/div/div/div[1]/div[4]/div")
pag.moveTo(600,500)
pag.scroll(-500)
sleep(2)
#установка видимого курсора над выбранным элементом
Народ всем доброго дня, подскажите плиз, не так давно перешел из одной сферы деятельности в тестировщики. Основная масса работы сейчас связана с двумя вещами: 1. Сравнение макет/верстка
2. Функциональное тестирование веб сайта
По 1 пункту сейчас делаю вялые попытки написать автоматизацию, в принципе первый результат есть, осталось довести до ума. По 2 пункту я так понимаю сейчас самый топчик это юзание selenium ? по модели POM я верно понимаю?
Просто хочется услышать ответ от людей с опытом, может есть еще какие либо вкусняшки?
Не так давно столкнулся с ситуацией, которая в принципе натолкнула меня на написание этой программы (если это можно так назвать и вообще если можно назвать меня программистом)
Я большой любитель компьютерного железа и частенько закупаю в одном из желтых магазинов у дома с эмблемой инопланетянина. Но копаться на сайте мне порой лень либо времени нет - не беда , прайс лист есть , сортирую по ценнику и поехал скупать , но нет , с недавних пор dns убрали прайс листы , так же на сайте всячески используются подгруздки данных через js процедуры .
Решил найти в интернете парсер , вся информация которая есть либо 2018-19 года с вопросами "а что то не получается " или "больше не актуально , не работает" а так хотелось найти рабочий парсер на Python .
Не так давно я начал проходить тестирование UI интерфейсов и решил с помощью Selenium на Python реализовать парсер.
Теперь вопрос , есть идея такая , создаю web сервис на Flask/Django и создаю микро-сервис который будет помогать пользователю подобрать технику по его параметрам .
Например мы хотим подобрать телефон , выбираем критерии к примеру :
Пол
Возраст
Для каких целей
Цена
И т.д.
Далее получаем список критериев на основе чего делаем подбор техники и советуем пользователю .
Плюсы сервиса : Если это будет кому то нужно кроме меня , то это поможет человеку без обращения за помощью к своим близким / дальним знакомым / родственникам получить помощь в подборе техники .
Конечно можно на первое время сделать подбор на основе ручного анализа (через словари к примеру)
А по мере развития уже автоматизировать процесс через обучение.
Расскажу, как я учился ездить. Если кто-то из подписчиков помнит, то мы с женой переехали в Торонто примерно 3 года назад.
Система в провинции Онтарио такая, что вы приезжаете если совсем без иностранных прав, то получить можете только ученические права. Сначала надо сдать письменный экзамен, он несложный, там всего несколько вопросов, всё легко тренируется через интернет на сайтах с вопросами. Вы платите деньги за экзамен, сдаёте его, вам также проверяют остроту зрения (можно в очках) и периферийное зрение специальным приборчиком, и присылают на почту на дом ученические права категории G1. Но водить самостоятельно вы с ними не можете, обязательно нужно, чтобы рядом с вами сидел эксперт с правами Full G, получаемыми после экзамена с трассой, и опыт не меньше 4 лет.
И самое неудобное, это то, что вы можете сдавать на более самостоятельные права только спустя 8 месяцев — год с момента получения G1. Наверное, это имеет смысл в отношении подростков, которых родители потихоньку в течение года учат ездить на своих пикапах, но в отношении взрослых иммигрантов не вижу ни малейшего смысла. Ученический G1 я сдал давно, вскоре после приезда, но ездить не умею, а пандемия намекнула, что в городе в ближайшие годы может быть не так интересно, как за его пределами, поэтому надо учиться вождению.
Поиск вариантов показал, что инструкторы что официальные, что неофициальные просят за свой труд более-менее одинаково, цены у любого типа инструкторов начинались в 2020 году от 35 канадских долларов в час и заканчивались примерно 60, кто себя особенно ценит. Я сразу записался на сдачу через примерно 3 месяца — очередь большая, потом много кого прозвонил, и остановился на официальном русскоязычном инструкторе за 40 долларов. Кстати, даже по меркам 2020 года это немного, так что если будете сдавать в будущем, то на такую стоимость особо рассчитывать не приходится.
Выбрал его, потому что разговор по телефону оставил хорошее впечатление, ну а русскоязычный потому, что мне кажется, многие русскоязычные люди очень ответственные. Кто-то скажет, что это нездоровый патриотизм, но извините.
На первой же встрече инструктор почему-то начал говорить со мной на английском. Я ничего против английского не имею, но когда два русскоязычных человека общаются на английском на бытовые темы, меня посещает ощущение некой нелепости. Некоторое время он мне говорил что-то на английском, а я невозмутимо отвечал ему на русском. В конце концов он не выдержал и уточнил, не желаю ли я общаться на русском, на что я ответил, что для терминов вроде “поверни налево” и “тормозни тут”, конечно, английский полезен в целях экзамена, но для остального можно обойтись.
Инструктор старался оказывать сервис высокого класса. Каждый раз он предлагал воспользоваться бесплатной бутылочкой воды, никогда не орал и не грубил напрямую. Но почему-то каждый раз я заканчивал занятие с неприятным чувством, будто меня считают за идиота, и не было понимания того, что ещё нужно освоить. Однажды по дороге он обронил историю, как к нему записалась идеальная женщина — было ей за 60, опыта вождения ноль, и она занималась с ним целый год, торопиться ей было некуда, зато экзамен сдала по высшему пилотажу.
Примерно на такой ноте я бросил этого профессионала своего дела, до экзамена оставался месяц, но уверенности не прибавлялось.
Проблема в том, что никогда не знаешь, на кого нарвёшься, и высокая цена за час не залог качества. Конечно, если б быть уверенным, что вот заплатишь ты 50-60, и будет ого как круто, но опыт подсказывал, что ценообразование работает немного иначе. Поэтому я решил рискнуть и записался на следующий урок к человеку, который просил 35 долларов.
По телефону он показался слегка офигевшим, когда в напутствие назвал меня почему-то Архимедом. Но в живую оказался крутой мировой мужик, не могу сказать про него ничего отрицательного, не смотря на некоторую между нами разницу. А ещё его можно назвать очень хрестоматийно русским. Он четверть века прожил в Канаде и особо никуда не ездил даже, даже зубы делал в Торонто, а это очень дорого. Но многое в нём олицетворяет современную российскую культуру — в отличие от первого инструктора, этот ругался матом и отпускал пограничные шутки, но, парадокс, — я ни разу не чувствовал, что он считает меня идиотом, а то, что он ругался матом, обычно было заметно, что не со зла, а от избытка эмоций. Позже он постоянно раскаивался и пытался сгладить эффект.
А ещё у него имелась в наличии типично русская душевная боль и тоска, не эксклюзивно русская, но та самая, характерная для классиков. С ним было интересно разговаривать “за жизнь”. Мне кажется, он брал за уроки поменьше денег, потому что основные задачи были решены, и за текущими расценками не следил, а потому даже не знал, что сейчас 35 уже почти никто не просит. Но решённые задачи не освобождали от той самой вселенской тоски. Он говорил, что иногда теряет смысл происходящего — вот приходишь домой, и не понимаешь, зачем всё нужно, не хватает какой-то глобальной цели в жизни. От этой бессмысленности он спускал часть свободных денег в карты онлайн, и его тянуло прибухнуть. Естественно, в будние дни он держался, но пятница у него была зарезервирована как возможность выпить, поэтому по пятницам занятий у нас не было. А ещё я думаю, что тоска была одной из причин, отчего ему нравилось работать инструктором — с каждым новым ученика он обретал промежуточную мини-цель, когда нужно пройти экзамен.
В общем, очень классически русский “нормальный” мужик, и не дурак. Я спрашивал его, как ему в Канаде — он отвечал, что жаловаться не на что. Его погодки сейчас в России получают копеечную пенсию, а у него самого почти бесплатное жильё (он проживал в социально-субсидированном доме), пенсия (плюс добавка по здоровью), медицина (кроме зубов), вокруг природа, езди каждую неделю на рыбалку, рыбы много, наловишь, накоптишь. На всё хватает, но ничего не нужно.
Мы занимались с ним до экзамена, и в день Х приехали с ним в центр сдачи в октябре. Это был как раз период между двумя волнами COVID, и снова стали объявлять, что количество заражённых растёт. Я со дня на день ожидал, что провинцию обратно заблокируют, а водительские центры закроют, поэтому сдать в этот день казалось единственным шансом, ведь если не сдать, то сделать бронь можно будет только на много месяцев спустя, возможно, на декабрь, а то и на январь, а там точно всё будет закрыто (в этом смысле я не ошибся).
Из чего состоит экзамен: обычно надо выехать на трассу, показать, что меняешь полосы по требованию, проехать через светофоры, свернуть в переулок, там сделать “параллельную парковку” задним ходом, потом сделать разворот на трёх точках и обычную парковку, и вернуться назад “на базу” через светофоры и смену полос. Экзаменатор в этот момент сидит и считает твои ошибки — в основном нужно не затупить и не накосячить по-крупному.
Взяв бумажку в центре, я сидел в машине и ждал экзаменатора, который случайным образом в порядке доступности назначается на каждую заявку. Как назло в этот момент налетела жёсткая буря, ветер стать хлестать дождём, дорога вымокла, хотя ещё минут 15 до этого дождичком едва пахло. И как раз в этот момент подошёл мой экзаменатор. Проверил фары, сел в машину, и сказал, чтобы мы ехали.
Кстати, ниже на картинке можно видеть, что небо синеет ещё в момент ожидания в очереди. Слева это вход в DriveTest Centre, а справа там парковка.
Я сдавал на Downsview, причём по многим отзывам это заявлено как лучшая и самая понятная локация по маршруту в Торонто. Надо сказать, что выезжать по хорошей погоде оттуда для новичка не сильно приятно, потому что там невпроворот машин и толчея людей, снующих для сдачи на небольшой парковке. А с дождём так просто всё встало, и видимость сильно снизилась.
Еле мы выбрались и подобрались к светофору, как лобовое стекло из-за перепада температуры начало запотевать изнутри, и запотело так сильно, что стало вообще ничего не видно нигде. Пока я лихорадочно соображал, как с этим быть, экзаменатор повернулся ко мне и спросил: “И что ты будешь с этим делать, что ты будешь со всем этим делать??” Пока я соображал, он стукнул по кондиционеру, и стёкла прояснились. “Хм, ну я бы до такого точно не додумался, ведь я даже ни разу не включал кондиционер”, — подумал я. “Поехали дальше”, — сказал он. И мы поехали.
На мой взгляд, проехали мы отлично, я сделал основные перестроения и манёвры без значимых погрешностей, только в самом конце обратно на стоянке экзаменатор заругался, что я поздно включил поворотник. И объявил мне, что вот этот поворотник является решающим в его заключении, и экзамен я сегодня не сдал. Критичных ошибок не было, но в форме списка недочётов он накидал много мелких ошибок, таких как “заносит на поворотах” и “поздно включает сигнал поворота”, которые в сумме превысили допустимый предел.
Расстроились и я, и инструктор. Основная проблема с экзаменом (помимо того, что он стоит денег: сам экзамен и инструкторская машина в аренду) — это то, что свободных слотов на ближайшее время нет вообще. Ближайшие свободные слоты были открыты на декабрь, но на декабрь-январь я не хотел бронировать, потому что ехать зимой ещё труднее, да и очевидно, что всё заново закроют, когда пойдёт COVID. Более того, не только закрыты все слоты в Торонто, они закрыты даже в ближайших городах. Люди ездили в Oshawa и Newmarket, но слотов не было даже там.
И тогда инструктор мне тихонько сказал:
— Есть, короче, тут один способ такой...
— Что за способ?
— Есть у меня один товарищ... Умный, очень умный, программист. Он сделал систему, которая там как-то подключается и находит тебе слот. Просит 50 долларов за каждую бронь.
— И что, гарантированно находится бронь?
— Гарантированно. Как только кто-то отменяется, а это происходит постоянно, товарищ сразу видит этот слот и занимает его. Он уже состояние себе на этом сделал.
Умный товарищ, одним словом.
— Неплохо, — сказал я.
— Можем сброситься по 25 долларов даже.
— Ого. Ну давайте подождём немного, и там посмотрим, всё равно нужно ждать 2 недели до следующей попытки.
25 или даже 50 долларов за такой сервис это максимально оправданные деньги. Я даже удивлён, что цена такая низкая, явно она не учитывала COVID-ную загрузку. Даже если бы слоты были в соседнем городе, том же Newmarket, то выходило ничуть не лучше с учётом времени на поездку и сопровождающих расходов.
Подключаться к базам я не умею, поэтому решил просто последить за ситуацией, периодически заглядывая на сайт бронирования, для чего требовался рутинный набор действий. И тут я вспомнил, что народ рассказывал про некий Selenium, с помощью которого можно автоматизировать работу в браузере, захотелось попробовать. Посмотрел пару видео, оказалось на базовом уровне всё очень просто, достаточно несложного скрипта. Основная проблема была это учесть корявости сайта, когда нужно перелогиниваться, и что делать, если найден вариант — ведь надо срочно бежать доставать карточки и бронировать. Для этого я поставил просто голосовое уведомление, что, мол, “найден вариант” и запустил шайтан-машину.
Она крутилась день, крутилась два. Какие-то варианты попадались, но моментально исчезали. “Товарищ бронирует напрямую в базе”, — решил я, — “а может там даже он не один такой. Поймать ничего вменяемого просто невозможно”. Но уже в субботу я поймал вариант, готовый к бронированию, сделал предбронь и позвонил инструктору, чтобы убедиться, что всё в порядке и машина будет свободна. Но инструктор не отвечал. “Наверное, справляется с экзистенциальной тоской”, — подумал я, и бронь слетела. В понедельник мы всё-таки созвонились, и я поймал ещё одну бронь, с экзаменом сразу на вторник.
Так неожиданно быстро у меня оказался назначен новый экзамен, и всё заново — куча машин, снующие люди, лёгкий мандраж, критические заметки инструктора по поводу настоящего времени.
— А ты молодец, подключился к базе. Можем продавать брони по 40, сдемпингуем товарища.
— Да я не подключался, это так, трудозатратная имитация.
— Что ж, посмотрим сегодня. Раньше большинство нормальные были, а сейчас понабрали новых, они всех валят, в прошлый раз вон тебя индус завалил. Хотя сами ездить не умеют.
— А вы почему в экзаменаторы не пошли?
— Хотел, но не берут, сволочи. Как акцент мой слышат, то всё, никуда, ты не местный. Всех нормальных выжили, понабрали девок со вчерашнего колледжа и индусов. Остался один нормальный только, бородатый мужик, вот к нему б ты попал, точно сдал бы.
И вдруг к нам подходит бородатый мужик и говорит: “Сегодня я твой экзаменатор”. “Это он и есть, вот свезло так свезло”, — воскликнул инструктор.
Проехали мы нормально, хотя я немного косячнул, не пропустив машину, когда стоило бы. Вернувшись обратно, еле влезли в парковочное место, и экзаменатор сказал:
— Н-да, даже не знаю, что сказать.
— Всё так плохо?
— Всё ещё хуже.
— Будет трудно пересдать, всё забронировано.
— Да, сочувствую тебе, незавидное положение, всё забронировано по январь, да и вообще.