Списки и циклы в Browser Automation Studio


1 786 просмотров.

Краткое описание видео: .здравствуйте сегодня тема нашего урока.будет работать со списками и циклами тем.более что две этих темы сильно.взаимосвязаны и в разработке какого.какой-либо программы видео я уже.выпускал на данную тему но она уже.устаревшая и сейчас высоты другого опыта.я хочу рассказать как правильно работать.со списками и.как организовывать циклы какие цифры.пригодные какие циклы непригодны для.обработки списков но оставим лирику.перейдем сразу к практике нажимаем на.запись.ждем пока у нас появится окошко вот у.нас есть пустая область.начала хочется преподнести немножко.теории что такое.списке список это та же самая переменная.но в отличие от переменной она содержит.сразу несколько значений по.идентификатору сейчас я все объясню что.значит если переменная у нас содержит.любое значение из типа данных текст.цифры.булево значение true или false или.expression код значит список может у нас.содержать сразу все эти значения по.своему ключу значение могут быть.однородными могут быть неоднородны.вообще разные.проще всего список представить себе как.табличку вот он например наш список как.вы видите она ничем от названия не.отличается от переменной единственная.чем она отличается это тем что у нее.есть ключи и соответствующий этому ключу.значение в практике программирования.принято начинать отсчет с нуля а это.значит что в переменной а если быть.точнее в списке лист name отчеты.элементов начинается с 0 1 2 3 4 всего.четыре элемента но обратите внимание.четвертый элемент будет содержаться.подключен 3.третий элемент будет содержаться.подключим 2 то есть смещение идет на.один и это понятно почему потому что.отчет у нас начинается с 0 они с единицы.для того чтобы получить определенное.значение.чтобы вытащить это значение из списка мы.должны обратиться по ключу то есть.например вист не по значению 0 выдаст.нам значение текст.давайте сразу приступим практике.перейдем баз и создадим какой-нибудь.простенький список мы можем создать.список из области.действий список создать список вот его.название и заполнить его как-нибудь.давайте напишем список назовем на имс и.тут у нас первое будет значение маша.тип данных string.эти тип данных тоже string и фея и так.мы создали список names давайте сразу.посмотрим в инспекторе переменных что у.нас создалось вот пожалуйста список.names.давайте его раскроем и мы видим три.разных строки которые содержатся в.кавычках кавычки обозначают что эта.строка.итак давайте к примеру вытащим в лог имя.федя для этого мы.инструмент лог и можем обратиться к нему.по имени для начала мы берём эту самую.переменную names.обратите внимание что список тоже также.отображается в переменной.проще говоря это тоже самое переменная.но с множеством значений.нажмем ok и мы видим что в квадратных.скобках у нас образовался этот название.этого списка и как мы пум для того чтобы.обратиться к названию федя мы должны.взять элемент под номером 2.почему элемент под номером 2 открываем.инспектор смотрим маша 0 пейте 1 федя 2.хотя элемент на самом деле 3 до.привычной логики нажмем добавить.и посмотрим влог и так у нас вы.высветилось маша петя феня.то есть у нас высветилось некорректно.что мы сделали не так.нажмем редактирование мы сделали не так.следующему тип данных указали string.когда мы хотим вывести список с.определенным значением мы должны с вами.вывести тип данных expression жмем ok и.попробуем заново теперь выдался нужный.нам элемент федя все это довольно просто.но давайте попробуем сделать что-нибудь.ближе к реальной практике уберем эти.элементы и попробуем например прочитать.список прочитать файл в список значит у.меня есть заготовленный файл называется.меню и здесь представлена минимум каждая.позиция меню с новой строки когда мы.прочтем файл список вы уже представляете.как это будет пирог с мясом будет под.номером ноль жареная курица под номером.один пицца с ветчиной под номером два и.так далее что же давайте попробуем.прочесть список файл для начала мы можем.мы можем указать относительный давайте.вот для начала зайдем файловую систему.читать файл в список.мы можем указать путь к файлу.относительный.а можем указать путь к файлу абсолютные.но суть в том что здесь вот это поле.принимает только абсолютный факт.абсолютный путь к файлу.что же делать если мы не всегда.предполагаем как где он может.располагаться таким образом мы можем.узнать.относительный путь файла при помощи.следующих действий мы идем статистика.скрипта путь к проекту и путь проекта у.нас отобразится в project с давайте.посмотрим что у нас такой за проект.проект с у нас это вот вот этот путь ну.то бишь вот он прямиком к этому файлу.дальше нам конечно же не нужен не нужен.файл теста xml нам нужно просто папка.этого файла то есть корневая папка в.какой папке она содержится для этого.тоже есть у нас функция мы заходим.файловая система.информация о файле или папки жмем сюда.введём project ps вели.и давайте посмотрим какие у нас есть тут.переменные который расскажет нам о о о.перемена project 5 это существует ли.такая перемена существует ли такой путь.к файлу размер файла и это в какой папке.она содержится вот эта перемена нам и.будет нужна вы можете ее переписать под.свое название но я предпочитаю.использовать дефолтные имена нажмем.выполните добавить окей итак у нас есть.файл инфобиз директория так смотрим.файлы инфобиз директории это вот эта.папка давайте попытаемся ее открыть в.на компьютере идем сюда и нас приводит.ссылка верной папке все верно итак мы.нашли корневую папку и относительно.нашего файла тесты html.у нас лежит файл меню таким образом он.лежит с файлом тесты на одном уровне и.папка у них собственно одинаковая.поэтому мы сейчас делаем следующее мы.прочитаем файл список а путь к файлу.укажем файл install.bat директорий и.возьмем название файла.окей выполнить и добавить и так.выступает файл контент у нас содержит.все позиции меню давайте убедимся в этом.нажав на инспектор переменных найдем.лист весь файл контент нажмем плюсик и у.нас как вы видите отобразились какие-то.вредные символы кодировки для того чтобы.их изменить нам нужно указать строго.кодировку utf8 а у нас видите кодировка.ansi кодировка ansi она не дружину в нас.с кириллицей укажем юта f8 нажмем.сохранить нажмем ok.закрою и перезапишем наш список.открываем выступит файл контент и.уже на смотрится все намного приличнее.теперь если мы обратимся к какому-нибудь.элементу на примере хочу суп из.морепродуктов.он у меня на четвертом месте но.поскольку у нас отсчет начинается с 0 то.это будет.идентификатор ключ то есть ключ под.номером три давайте выведем его в лоб.возьмем нашу на список l’esprit файл.контент и в скобочках укажем троечку и.так как мы видим нам опять видела все.некорректно все почему потому что мы.забыли указать тип expression нажмем.экспресс еще раз суп из морепродуктов.прекрасно что нам делать если мы хотим.вывести все эти значения из списка но мы.не знаем вообще сколько в этом списке.сколько в этом списке значений это же.все делает программы не мы не всегда.можем посмотреть то есть точнее мы в.режиме запуска вообще не можем.посмотреть в инспектор переменных.поэтому нам нужно как-то.программ нужно как-то само догадываться.сколько там элементов и по очереди это.все выводить мышь не можем каждый раз.обращаться к элементу 0 1 2 и 3 и так.далее для этих дел и существуют циклы и.так самое первое что вы должны уяснить.это то что с цикла с со списками.прекрасно работает цикл for each for.each массив пробегает по каждому.элементу списка то есть выискивает файл.контент он обойдет каждый элемент списка.этот этот этот этот этот этот и вам не.нужно задавать сколько раз ему нужно.бегать по ним вы просто указываете этот.самый список list with файл контент и.жмете ok.по умолчанию нам в новых версиях вас по.умолчанию выдается ул.из двух действий но мне он абсолютно.как бы не нравится но принципе выдавать.его запустим посмотрим что нам выдала.нам выдало текущие текущие данные пирог.с мясом.повторение цикла 0 текущие данные.жареной курицы.текущие повторение цикла 1 итак берем.это первое что вы должны уяснить.то что for each есть такая for each есть.такая переменная как по умолчанию это.это фурычит и до большой все ..это это текущие текущее значение по.циклу давайте например возьмем это в.принципе когда вы создаете список он у.вас по умолчанию эта переменная.появляется и давайте выведем log for и.что это вот он жмем ok жмём выполнить.жмем только добавить запустим давайте.очистим лог чтоб нам было нагляднее.запустим наше foreach и так вот они все.наши фарида это foraged это текущая.позиция значит что делает список for.each он пробегает по каждому ключу.вытягивает из них значение для кожи 4.также по умолчанию в любой.цикл абсолютно в любой цикл while в цик.рф цикл for в цикл foreach.добавляется по умолчанию переменная.сайкл индекс.давайте посмотрим что это такая.переменная.сайкл индекс очистим лог и посмотрим что.нам выдаст.сайкл индекс это текущее значение ключа.то есть текущая.итераций а если говорить языком.программирования таким образом у нас.перезапустим очистим лог.перезапустим таким образом у нас под.номером 0 под номером сайкал индекс.находится данные формы 4 да то есть.пирог с мясом.как еще мы можем записать for which they.to for each ты это мы можем записать как.хлыст и.внутри выставить значение сайкл yandex.вот это значение в for each функции.равносильно равносильно что вы бы.написали к примеру вот так то есть как.писать выбирать конечно же вам но for.each уместнее писать foreach 3d а вот в.цикле for for each дейта не будет в.цикле for мест не и писать флота такой.вариант потому что цикл for не знает.сколько ему lime.элементов нужно оббегать в цикле for.нужно явно задать сколько раз скрипт.должен выполнится внутри давайте.попробуем место.foreach тейта.вместо фоне что это выставить наш наш.список.контент по значению сайкл индекс один.важный момент обязательно здесь.поставить пробел иначе работать не будет.я не знаю почему такая особенность но.она такая жмем expression и нажмем ok.итак мы изменили ford econoline контент.внутри сайта яндекс сайт яндекс.напоминает текущей текущие текущей.итерации текущие ключ текущий индекс.пробегаемся отлично мы получили тот же.самый результат.что из флориды да ну что же принципе мы.списке можем обрабатывать и без for each.я покажу вам еще другой метод вы можете.его использовать на другие какие-либо.проекты если вам как-то for each не.пригодится но как правило я предлагаю.использовать for each всегда для списков.у нас уже есть список выступ файл.контент давайте пробежимся по нему при.помощи другого цикла пробежимся по нему.при помощи цикла for.если мы нажмём на форту нам предлагают.жестко задать от какого числа и до.какого мы будем по нему продвигаться мы.не знаем сколько элементов то есть.программа в режиме запуска не будет.знать сколько элементов нашем списке.что нужно прежде всего сделать конечно.же прежде всего необходимо узнать.сколько элементов в нашем списке для.этого у нас есть прекрасная функция она.есть в списке мы ищем и и называется она.у нас так так так количество элементов.переменная содержащая список выступает.файл контент жмем ok и в лист links нам.вы видите количество элементов в списке.жмем ok.давайте посмотрим что у нас в лесу x.list links.у нас показано что и шесть элементов.присутствуют давайте проверим так ли это.36 все верно то есть вложите свой.контент в нас шесть элементов ok.все круто теперь мы знаем до какого.элемента нам нужно пробегать теперь мы.можем организовать цикл for мы.организуем его от нуля и до рест.rings внимание -1 почему -1 потому что.мы бегаем от значения 0 если мы хотим.пробежаться под значений единицы.так тоже можно да тогда здесь не.понадобится -1 но это внесет некоторую.путаницу поэтому я всегда предлагаю.здесь писать 0 а здесь минус 1.поскольку в традиции программирование.всегда принято начинать с нуля.нажмем ok отлично теперь мы организовали.цикл.аналогичный for each при помощи вот этих.двух блоков кода давайте попытаемся.вывести вывести ключ и значение будем.делать так инструмент лог деталь так.ключ.ключ у нас будет сайкл индекс.поставим запятую на челе.у нас будет обратите внимание здесь уже.нет форекс дельта и мы делаем как.правильно и мы делаем следующим образом.мы берем blade из файл контент и.добавляем в него сайт яндекс.отлично и выберем переменную экспрессом.давайте попробуем все это вывести прежде.чистим блок чтоб на бы красивее.воспринимать информацию запускаем парсер.во время действия смотрим что же мы.сделали не так очевидно что вот данное.значение принадлежит в группе expression.но если мы делаем как expression тогда.мы должны сделать следующим образом у.нас есть 2 варианта мы можем сделать так.так так так так значениями берем тоже в.кавычки и пробелы все его.плюс вот так таким образом нас должно.заработать.пробуем шикарно она у нас заработала но.все равно вывела что-то не то а почему.он уловил что-то не то абсолютно.правильно потому что мы не указали.тип данных экспаншен нажмем ok.очистим лог для наглядности поехали вот.теперь все гуд.то есть ключ 0 значение пирог с мясом.ключ один значение жареная курица.давайте проанализируем что мы сделали в.логе поскольку тип данных expressions мы.должны соблюдать логику java скрипта.синтаксис java script а то есть текст у.нас берется в кавычки а переменный у нас.указывается без кавычек.переменные плюсуется к тексту таким.образом у нас получается текст либо мы.могли сделать намного проще мы могли.установить переменную к примеру назвали.бы и for each да это а значение бы ей.установили expression и значение бы ей.дали pleased with fat content.сайкал индекс.жмем ok прекрасно теперь мы можем.указывать все без вот этих вот лишних.символов.давайте очистим лог.для наглядности и выполним наш цикл.опять синтаксис р-на.96 кстати всегда обращайте вот в данном.случае на код ошибки откуда у нас идет.код ошибки из-за невнимательности мы.можем совершать такие ошибки тип данных.expression но у нас тут нет вообще.expression теперь у нас обычные.текстовые переменной и обычно текстовые.перемены мы забыли ее указать на тип.string то есть у нас тут тупо текст.просто текст.поехали все шикарно все работает данный.видео урок я не стану корректировать из.ошибок которые были сделаны как раз.наоборот как фиксить эти ошибки.понадобится нам для решения реальных.задач по невнимательности или по.забывчивости мы можем совершать.некоторые ошибки нашу основную менее это.их исправлять например если вы видите.ошибку вы можете видеть ее идентификатор.он еще отображается вот здесь если вы.кликните по нему то как вы видите блок.подсвечивается желтым цветом это.означает что именно здесь совершена.ошибка мы можем так пробежаться по.каждому идентификаторов давайте.попробуем написать более реальный проект.мы же не всегда будем работать с файлами.правильно то есть не всегда у нас будет.такой файл который содержит значение.возможно он и должны будем получить его.в ходе парсинга с определенных сайтов.давайте уберем.вот эти блоки кода а также уберём читать.файл список давайте перейдем на youtube.забьем запрос котики чтобы не делать.лишних телодвижений сначала заходить на.сайт потом билан запрос потом взять.поиск.мы просто возьмем прямую ссылку на.запрос котики загрузим браузере этот.сайт данную ссылку как вы видите нам.выдали какие-то символы эти символы у.нас кодируют пробелы и кодируют.кириллицу все нормально жмем выполнить.код жмем ok и ждем пока данный.загрузится для того чтобы видеть браузер.во всей красе нажмем вот сюда и перейдем.прекрасна наша задача сейчас будет.парсить название всех вот этих видео.который располагается на данной странице.давайте это и сделаем для начала.проанализируем код изучим элемент на.странице и так.мы можем заметить что элемент смешные.котики вот кстати он подсвечивается у.нас будут синим когда мы наводим он у.нас находится панкин модификаторами под.индентификации между тегами а.и видео тайтл.давайте попробуем взять.чисто этот кусочек кода и посмотреть как.она будет работать.вернемся к коду сделаем следующее.возьмем получить текст и ведем сюда.селектор меч а вместо этого видим вот.такую вещь итак у нас подсветилось 37.видео все они подсвечиваются все гуд.значит следующее что мы делаем кстати.говоря давайте посмотрим что у нас под.элементом под номером 0 потому что.бывает скрытые элементы все правильно.под элементом под номером 0 у нас.скрываются смешные котики и котики.приколы про котов и до слез прекрасное.название название данной конструкции у.нас запишется в сейф текст сейчас я.покажу логику мышления в которой вам.требуется идти для начала мы понимаем.что нам нужно обойти каждую ссылку если.мы перейдем каждый элемент матч если мы.например возьмем один то мы перейдем ко.второму элементу у нас есть 2 варианта.организовать цикл for что будет более.трудозатратно или организовать цикл.что-то наподобие for each но for each.нам здесь не нужен почему не нужны.потому что у нас нет готового списка с.элементами.мы не знаем вообще сколько и что нам.проходить для всего этого для парсинга.существует селектор ный цикл который мы.можем организовать.жмем следующие для каждого элемента.начать цикл и вставляем сюда строчку.кода который мне спасили раньше.жмем ok теперь цикл пробежится по.каждому элементы дальше на каждом этапе.нам нужно.спарсить кусок текста значит мы делаем.следующее для каждого элемента.получить текст и как вы можете заметить.в селекторе меч уже не выделяется ничего.потому что он пробегает вот именно по.этому селектору на каждый сайт яндекс то.есть по каждому ключу и сохраняет.название всех текст давайте добавим и.давайте на каждом этапе будем выводить в.лог значение сэйв текст хорошо давайте.перейдем такой режим чтобы видеть лук.очистим лог для наглядности расширим его.и давайте выполним начать цикл поехали.пожалуйста вот все названия которые есть.у этих видео высвечивает нам блок то.есть все 30 название которые там были.остановлю цикл.это все хорошо но лог это временное.хранилище то есть переменная выведется в.лоб и забудется а нам нужно это куда-то.сохранить.давайте посмотрим что происходит в цикле.долин блок значит проходимся по первому.элементу получаем текст записанный вол.сейф текст дальше повторяем цикл.проходимся по второму элементу.получаем текст записанного в сэв текст.то есть переменная просто.перезаписывается каждый раз то есть.каждый раз мы получаем новую переменную.а старое значение уничтожается я думаю.вы уже догадались что нам нужно сделать.нам нужно это значение старое значение.помещать в список давайте перейдем.вместо перед циклом.и создадим список список.создать список и назовем его names видео.вот выполнить окей итак у нас есть.список names of видео что мы делаем мы.сохраняем переменную секс текст прямо в.этот список таким образом концу данного.цикла у нас пополнится список просто.добавим элемент.переменная которой у нас будет со.списком это names.а значение у нас будет сесть текст.значение у нас текстовая поэтому мы.добавим string нажмем ok и давайте.запустим заново.итак в данном.в данный момент у нас переменную вас.переменную и также то есть переменную из.список она у нас и переменной список.names of видео записываются значение и.даются им ключи 0 1 2 3 4 5.сейчас мы в этом убедимся когда цикл.закончится и так тыкал ещё не закончился.там около 30 элементов значит вам.тридцать раз так пробежаться должен все.цикл закончился.давайте посмотрим в инспектор переменных.в список names of video games of video.у нас имеет первый элемент второй.элемент ну и так далее то есть она.медленно с достаточно много элементов и.так мы имеем теперь список который.содержит все эти названия дальше мы.можем с ним поступить просто перейдем.файловую систему и запишем список файл.запись файл нам не подходит под запись.фарс плавником нам выдаст значит где-то.а вот записать список файл после цикла.мы жмем записать файл записать список.файл значит путь к файлу мы укажем.мои folder где наша main folder у нас.называется файл фбс директории до список.для записи которые мы возьмем и the.names of video нажмем выполнить и.добавить нажмем ok.но мы еще кое-что не внесли а нет мы.внесли все то есть name файлы.инфобиз директорий это нас папка просто.мы забыли дать название файлу файл нас.будет называться например.котики фантики . тексты плотике.. ok давайте еще раз повторим действие.давайте посмотрим нашу директорию и так.у нас образовался файл котики откроем.его и теперь мы можем видеть мы можем.видеть название всех видео правда.записались они у нас с пробелами.но пробела это уже отдельная история вы.можете в цикле также убрать все эти.пробелы для каждого элемента при помощи.java скрипта это сейчас не главное что.мы с вами должны усвоить в целом мы свою.задачу выполнили а пустые пробелы можно.убрать кодом то есть мы с вами сейчас.работали со списком организовали об.селектор на цикл поработали с дефолтным.и данными форекс дельта сайкл яндекс и.поработали с текстовым файлом и его.связями со списком это пожалуй все что.требуется знать о списках и.циклах также вы можете поизвращаться со.списком names of видео как угодно вы.можете сюда.удалять какой-то элемент дальше вы.можете добавлять сюда какой-то элемент.свой может быть может быть какой-то.которому получили опять на сайте вы.можете получать какой-то элемент.устанавливать удалять извращаться как.только вашей душе угодно полагаю на.данном этапе мы закончим урок жду вас в.следующем видео.а также напоминаю что свои вопросы вы.можете присылать мне в vk.адрес будет указан в описании также вы.можете заказывать программы по доступной.цене.быстро качественно и не сильно дорого.на этом закончим до следующего видео

Списки и циклы в Browser Automation Studio

Как? Вы еще не смотрели? Ну это зря...