Ребята, добрый вечер! Кто может подсказать на сегодняшний момент, если какое-то рещение, чтобы обойти RECAPTCHA, которая подтягивается со стороннего сайта? Средствами Selenium это сделать невозможно, кто как решал эту проблему? Очень жду любого ответа
К сожалению вряд ли вам удастся это сделать, иначе в чем смысл ее? Если бы это был ваш продукт (сайт) тогда модно было бы внести ваш ай пи в вайт лист и заблокировать ее путем добавления в URL ?captcha_no=true ну или что-то в этом роде. А если сайт не ваш, как вы указали выше, то единственным решением будет просто добавить wait и ручками вводить то что нужно. Например
WebDriverWait wait = new WebDriverWait;
WebElement вашеИмя = wait.until(ExpectedCondition.visibilityOfElemetLocated(ваш елемент после каптчи));
Знаю,что это не то что вы ожидали, но к сожалению думаю, что другого решения нет.
Спасибо! Я поняла, что recaptcha со стороннего сайта не обойти. Может кто-то подскажет, как используя py.test оставаться в учетной записи для дальнейших тестов, чтобы не логиниться много раз?
Общий принцип таков что вам нужно после логина запомнить куку сессии. На java это выглядит так
Cookie session_cookie = driver.manage().getCookieNamed("[your_session_cookie_name]").
А перед тем как снова залогиниться, и вы уже ранее вылогинились, то куку сессии снова поместить в драйвер:
driver.manage().addCookie(session_cookie);
На python будет только синтаксис отличаться.
Интересная идея! Спасибо, Дмитрий, попробую!
Вернее вам уже логиниться не надо будет. Сервер по куке сесии вас идентифицирует как клиента при выполнении любого запроса.
Это в случае, если используется только сессионная кука. Если дополнительно задействован локал-сторедж браузера - такой воркэраунд не прокатит
Что мешает логиниться единожды на протяжении тестового набора/модуля? Модульные фикстуры есть для этого.
Это используя @pytest.fixture(scope=‘module’)?
Именно. Так же подойдет и session, или class, в зависимости от того как организованы тесты
Тут вроде довольно неплохо расписано что к чему, важно лишь понимание преследуемой цели: http://pythontesting.net/framework/pytest/pytest-session-scoped-fixtures/
Спасибо за ссылку, буду разбираться!
Не проще ли и универсальнее — использовать сервис распознавания капч?