Comments 16
Thread.sleep(2*1000); //Жду

Есть же wait for!
WebDriverWait wait = new WebDriverWait(webDriver, timeoutInSeconds);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.id<locator>));
Это мой первый скрипт на Java. Я вообще то PHP-шник. А Java я гуглю и пишу. Соответственно, что первое попалось, то и пишу.
Я вообще то PHP-шник.
Понял.
$driver->wait()->until(
function () use ($driver) {
$elements = $driver->findElements(WebDriverBy::cssSelector('li.foo'));
return count($elements) > 5;
},
'Error locating more than five elements'
);
Заголовок спойлера
Если Вы не поняли моего предыдущего сообщения, то я объясню: сначала нужно изучить инструмент, потом использовать, и только потом пилить на Хабр статью. Умолчу, что Вашу задачу можно было решить 1000 и 1 способом и совсем без selenium-а
Решить то можно и без Seleniuma. Ну я решил вот так сделать, и, может быть, это кому то будет полезным готовым скриптом по работе с Контуром.
А по поводу «Thread.sleep(2*1000);» — я руководствовался тем, что не знаю систему безопасности в Контуре, поэтому, чтобы не забанили аккаунт, притворялся простым юзером, который вводит данные с паузами. Паузу оно делает, поэтому задачу свою выполняет. Если что-то не нравится в написании, тут каждый может что-то добавить, что-то убрать.
А по поводу «Thread.sleep(2*1000);» — я руководствовался тем, что не знаю систему безопасности в Контуре, поэтому, чтобы не забанили аккаунт, притворялся простым юзером, который вводит данные с паузами. Паузу оно делает, поэтому задачу свою выполняет. Если что-то не нравится в написании, тут каждый может что-то добавить, что-то убрать.
Я вообще то PHP-шникfacebook.github.io/php-webdriver/community/index.html
Зачем такие сложности. Посмотреть в devtools ajax запрос и повторить его. Если защиты нет то это 10 минут работы.
1. Я не нашёл, где они в ajax-запросах. Может быть плохо искал, но…
2. К тому же там ещё сложность в посылке логина системе. Страничка логина не простая, а защищённая. Вот из-за него и пришлось работать из браузера.
2. К тому же там ещё сложность в посылке логина системе. Страничка логина не простая, а защищённая. Вот из-за него и пришлось работать из браузера.
aRomanyuk, привет! Я из Контура. Классно, что ты разобрался, как у нас всё устроено в Закупках, потрогал Java и Selenium. Читали пост всей командой, гордились тобой :)
Давай подарим тебе доступ к Закупкам на тарифе Эксперт? Во-первых, будет удобней работать — можно будет выгрузить информацию через интерфейс. Во-вторых, не нужно было поддерживать скрипт из поста. А ещё подарим книжку по Java — следующий скрипт писать будет легче :)
Напишешь мне в личку?
Давай подарим тебе доступ к Закупкам на тарифе Эксперт? Во-первых, будет удобней работать — можно будет выгрузить информацию через интерфейс. Во-вторых, не нужно было поддерживать скрипт из поста. А ещё подарим книжку по Java — следующий скрипт писать будет легче :)
Напишешь мне в личку?
Спасибо, Владимир Анатольевич, порадовали весь Контур! :-)
Sign up to leave a comment.
Как собрать информацию с Контур.Закупки с помощью Selenium