Селен

Използване на селен с Firefox Driver

Използване на селен с Firefox Driver
Селенът е чудесен инструмент за тестване на браузъри, уеб автоматизация и изстъргване на уеб. Селенът може да контролира повечето съвременни уеб браузъри. i.д., Firefox, Chrome, Chromium, Opera, Apple Safari. За да контролира браузъра, Selenium се нуждае от инструмент, наречен Web driver. Повечето от съвременните доставчици на браузъри предоставят софтуер за уеб драйвери за своите уеб браузъри.

За да контролирате уеб браузъра Mozilla Firefox от Selenium, трябва да използвате Gecko Web Driver.

В тази статия ще ви покажа как да настроите Selenium за провеждане на тестове на браузъра, уеб автоматизация, задачи за изстъргване на уеб с помощта на уеб браузъра Mozilla Firefox. И така, нека започнем.

Предпоставки:

За да изпробвате командите и примерите от тази статия, трябва да имате,

1) Линукс дистрибуция (за предпочитане Ubuntu), инсталирана на вашия компютър.
2) Python 3, инсталиран на вашия компютър.
3) PIP 3, инсталиран на вашия компютър.
4) Mozilla Firefox, инсталиран на вашия компютър.

Можете да намерите много статии по тези теми в LinuxHint.com. Не забравяйте да ги проверите, ако имате нужда от помощ.

Подготовка на виртуалната среда на Python 3 за проекта:

Python Virtual Environment се използва за създаване на изолирана директория на проекти на Python. Модулите Python, които инсталирате с помощта на PIP, ще бъдат инсталирани само в директорията на проекта, а не глобално.

Python virtualenv модул се използва за управление на виртуални среди на Python.

Можете да инсталирате Python virtualenv модул в световен мащаб, използвайки PIP 3, както следва:

$ sudo pip3 инсталира virtualenv

Python virtualenv трябва да се инсталира.

Създайте директория на проекта селен-firefox / в текущата работна директория, както следва:

$ mkdir -pv selenium-firefox / драйвери

Придвижете се до новосъздадената директория на проекта селен-firefox / както следва:

$ cd селен-firefox /

Създайте виртуална среда на Python във вашата директория на проекта със следната команда:

$ virtualenv .venv

Виртуалната среда на Python трябва да бъде създадена във вашата директория на проекта.

Активирайте виртуалната среда на Python от вашата директория на проекта със следната команда:

$ източник .env / bin / активиране

Инсталиране на библиотека на Selenium Python:

Библиотеката на селен се предлага в официалното хранилище на Python PyPI.

Можете да инсталирате библиотека на Selenium Python, като използвате PIP 3, както следва:

$ pip3 инсталиране на селен

Би трябвало да се инсталира библиотека на Selenium Python.

Инсталиране на драйвер за Firefox Gecko:

За да изтеглите драйвера за Firefox Gecko, посетете страницата за издания на GitHub на mozilla / geckodriver от вашия любим уеб браузър.

Както можете да видите, v0.26.0 е най-новата версия на Firefox Gecko Driver по време на писането.

За да изтеглите драйвера за Firefox Gecko, превъртете малко надолу и щракнете върху Linux geckodriver tar.gz архив в зависимост от архитектурата на вашата операционна система.

Ако използвате 32-битова операционна система, щракнете върху geckodriver-v0.26.0-linux32.катран.gz връзка.

Ако използвате 64-битова операционна система, щракнете върху geckodriver-v0.26.0-linuxx64.катран.gz връзка.

Ще изтегля 64-битовата версия на Firefox Gecko Driver.

Вашият браузър трябва да ви подкани да запазите архива. Изберете Запишете файла и кликнете върху Добре.

Драйверът за Firefox Gecko трябва да бъде изтеглен.

Архивът на Firefox Gecko Driver трябва да бъде изтеглен в ~ / Изтегляния директория.

Можете да извлечете geckodriver-v0.26.0-linux64.катран.gz архив от ~ / Изтегляния директория към шофьори / директория на вашия проект със следната команда:

$ tar -xzf ~ / Downloads / geckodriver-v0.26.0-linux64.катран.gz -C драйвери /

След като архивът на Firefox Gecko Driver бъде извлечен, се създава нов двоичен файл geckodriver трябва да се създаде в шофьори / директория на вашия проект, както можете да видите на екранната снимка по-долу.

Първи стъпки със селен с помощта на Firefox Gecko Driver:

В този раздел ще ви покажа как да настроите първия си скрипт на Selenium Python, за да тествате дали Firefox Gecko Driver работи.

Първо, създайте нов Python скрипт ex00.py в директорията на вашия проект и въведете следните редове в него.

от webdriver за импортиране на селен
от селен.уеб драйвер.често срещани.ключове за импортиране
браузър = webdriver.Firefox (изпълним_ път = "./ drivers / geckodriver ")
браузър.get ('https: // www.linuxhint.com ')
print ('Заглавие:% s'% браузър.заглавие)
браузър.отказ ()

След като приключите, запазете ex00.py Python скрипт.

Редове 1 и 2 импортират всички необходими компоненти от селен Python библиотека.

Ред 4 създава обект на уеб драйвер на Firefox с помощта на уеб драйвер.Firefox () метод и го съхранява в a браузър променлива. The изпълним_ път Аргументът се използва, за да каже на уеб драйвера къде да търси двоичен файл на Firefox Gecko Driver. В този случай geckodriver двоично от шофьори / директория на проекта.

На линия 6, браузър.получи () методът се зарежда linuxhint.com в уеб браузър на Firefox.

След като уебсайтът завърши зареждането, ред 7 отпечатва заглавието на уебсайта тук, браузър.заглавие свойството се използва за достъп до заглавието на уебсайта.

Ред 8 затваря уеб браузъра Firefox с помощта на браузър.изход () метод.

Можете да стартирате скрипта на Python ex00.py със следната команда:

$ python3 ex00.py

Селенът трябва да отвори уеб браузър Firefox и да посети linuxhint.com уебсайт автоматично.

След като страницата се зареди, тя трябва да отпечата заглавието на уебсайта на конзолата и уеб браузърът да се затвори автоматично.

И така, Selenium работи коректно с драйвера на Firefox Gecko.

Пример 01: Стартиране на Firefox в режим без глава с помощта на селен

Можете също така да стартирате Selenium с Firefox Gecko Driver в режим без глава. Безглавният режим на Selenium Firefox не изисква графичен потребителски интерфейс, инсталиран на вашия компютър. И така, ще можете да стартирате Selenium Firefox във всеки Linux сървър без глава.

Първо, създайте нов Python скрипт ex01.py в директорията на вашия проект и въведете следните редове кодове в него.

от webdriver за импортиране на селен
от селен.уеб драйвер.firefox.опции за импортиране
от селен.уеб драйвер.често срещани.ключове за импортиране
firefoxOptions = Опции ()
firefox Опции.add_argument ("- без глава")
браузър = webdriver.Firefox (изпълним_ път = "./ drivers / geckodriver ", options = firefoxOptions)
браузър.get ('https: // www.linuxhint.com ')
print ('Заглавие:% s'% браузър.заглавие)
браузър.отказ ()

След като приключите, запазете ex01.py Python скрипт.

Ред 1 и ред 3 са същите като ред 1 и ред 2 на ex00.py Python скрипт.

Линия 2 импортира Firefox Настроики от селен библиотека.

Ред 5 създава обект с опции на firefox и го съхранява в firefox Опции променлива.

Ред 6 използва firefox Опции.add_argument () метод за добавяне на -обезглавен Флаг на командния ред на Firefox към firefox Опции обект.

На линия 8, настроики аргумент се използва за предаване на firefox Опции докато инициализирате уеб драйвера на Firefox с помощта на уеб драйвер.Firefox () метод.

Останалите редове на ex01.py скриптът е същият като ex00.py.

Можете да стартирате скрипта на Python ex01.py със следната команда:

$ python3 ex01.py

Както можете да видите, заглавието на уебсайта (linuxhint.com) се отпечатва на конзолата, без да се отваря графична версия на уеб браузъра Firefox.

Както можете да видите, Selenium работи и върху безглава среда на Ubuntu, където нямам инсталиран графичен потребителски интерфейс.

Сега, когато знаете как да преминете -обезглавен Флаг / опция на командния ред на Firefox, използвайки драйвера на Selenium Firefox Gecko, можете да предадете и всички други флагове / опции на командния ред на Firefox.

Можете да намерите всички поддържани знамена / опции на командния ред на Firefox в опциите на командния ред - Mozilla | MDN страница.

Пример 02: Извличане на Lorem Ipsum с използване на селен

В този раздел ще ви покажа как да направите основно бракуване в мрежата с помощта на драйвера на Selenium Firefox Gecko.

Първо посетете страницата Lorem Ipsum Generator от уеб браузъра Firefox. Както можете да видите, страницата генерира 5 произволни абзаца. Нека извлечем целия генериран текст (всички 5 абзаца) от тази страница.

Преди да започнете да извличате информация от уеб страница, трябва да знаете HTML структурата на съдържанието на уеб страницата.

Можете лесно да намерите HTML структурата на съдържанието, което искате да извлечете с помощта на Инструмент за разработчици на Firefox. Да отвориш Инструмент за разработчици на Firefox, натиснете десния бутон на мишката (RMB) на страницата и кликнете върху Проверете елемента (Q).

Инструмент за разработчици на Firefox трябва да се отвори. Кликнете върху Икона за проверка () както е отбелязано на екранната снимка по-долу.

Задръжте курсора на мишката върху първия абзац, както е показано на екранната снимка по-долу. След това натиснете левия бутон на мишката (LMB), за да го изберете.

HTML структурата на параграфите трябва да се показва в Огледайте в раздела Инструмент за разработчици на Firefox. Както можете да видите, генерираните абзаци на lorem ipsum са вътре в a div таг, който има документ за самоличност lipum.

За да извлечете абзаците на lorem ipsum с помощта на драйвера на Selenium Firefox Gecko, създайте нов скрипт на Python ex02.py в директорията на вашия проект и въведете следните редове кодове в него.

от webdriver за импортиране на селен
от селен.уеб драйвер.firefox.опции за импортиране
от селен.уеб драйвер.често срещани.ключове за импортиране
firefoxOptions = Опции ()
firefox Опции.add_argument ("- без глава")
браузър = webdriver.Firefox (изпълним_ път = "./ drivers / geckodriver ", options = firefoxOptions)
браузър.get ('https: // www.lipum.com / feed / html ')
lipum = браузър.find_element_by_id ('lipsum')
печат (lipum.текст)
браузър.изход ()

След като приключите, запазете ex02.py Python скрипт.

Ред 10 зарежда страницата на генератора на lorem ipsum с помощта на браузър.получи () метод.

Съдържанието на lorem ipsum е вътре в a div етикет с идентификатора lipum. Ред 12 използва браузър.find_element_by_id () метод, за да го изберете от уеб страницата и да го съхраните в lipum променлива.

Ред 13 отпечатва генерираното съдържание на lorem ipsum на конзолата. Ето, текст свойството се използва за достъп до съдържанието на div елемент с идентификатора lipum.

Сега стартирайте скрипта на Python ex02.py както следва:

$ python3 ex02.py

Както можете да видите, Селен извлече съдържанието на lorem ipsum от уеб страницата правилно.

Изпълнение на скрипта на Python ex02.py отново ще ви даде различен изход, както можете да видите на екранната снимка по-долу.

Пример 03: Извличане на списъчни данни с помощта на селен

В този раздел ще ви покажа пример за данни за бракуване на уеб списък от уебсайт, използващ драйвер на Selenium Firefox Gecko в режим без глава.

Първо посетете генератора на произволни имена.информация от уеб браузъра Firefox. Този уебсайт ще генерира 10 произволни имена всеки път, когато презаредите страницата, както можете да видите на екранната снимка по-долу. Нашата цел е да извлечем тези произволни имена, като използваме Селен в режим без глава.

За да разберете HTML структурата на списъка, трябва да отворите Инструмент за разработчици на Firefox. За да направите това, натиснете десния бутон на мишката (RMB) на страницата и кликнете върху Проверете елемента (Q).

Инструмент за разработчици на Firefox трябва да се отвори. Кликнете върху Икона за проверка () както е отбелязано на екранната снимка по-долу.

След това задръжте курсора на мишката върху списъка с Случайни имена. Списъкът трябва да бъде маркиран, както е маркиран на екранната снимка по-долу. След това натиснете левия бутон на мишката (LMB), за да изберете списъка.

HTML кода на списъка трябва да бъде подчертан в Инспектор в раздела Инструмент за разработчици на Firefox. Тук списъкът с произволни имена е вътре в a div елемент. The div елементът има клас име резултати. Вътре в него имаме ол елемент с клас име списък с имена. Вътре в ол елемент, всяко от имената е в ли елемент.

От тук можем да кажем, че за да стигнем до ли тагове, трябва да следваме div.резултати> ол.nameList> li

И така, нашият CSS селектор ще бъде div.резултати ол.nameList li (просто заменете > знаци с празно пространство)

За извличане на тези произволни имена създайте нов Python скрипт ex03.py и въведете в него следните редове кодове.

от webdriver за импортиране на селен
от селен.уеб драйвер.firefox.опции за импортиране
от селен.уеб драйвер.често срещани.ключове за импортиране
firefoxOptions = Опции ()
firefox Опции.add_argument ("- без глава")
браузър = webdriver.Firefox (изпълним_ път = "./ drivers / geckodriver ", options = firefoxOptions)
браузър.get ("http: // random-name-generator.информация / ")
nameList = браузър.find_elements_by_css_selector ('div.резултати ол.nameList li ')
за име в списък с имена:
печат (име.текст)
браузър.отказ ()

След като приключите, запазете ex03.py Python скрипт.

Ред 10 зарежда уебсайта на генератора на произволни имена с помощта на браузър.получи () метод.

Ред 11 избира списъка с имена с помощта на браузър.find_elements_by_css_selector () метод. Този метод използва CSS селектора div.резултати ол.nameList li за да намерите списъка с имена. След това списъкът с имена се съхранява в списък с имена променлива.

В редове 13 и 14, а за цикъл се използва за итерация през списък с имена списък с ли елементи. Във всяка итерация съдържанието на ли елемент се отпечатва на конзолата.

Сега стартирайте скрипта на Python ex03.py както следва:

$ python3 ex03.py

Както можете да видите, скриптът на Python ex03.py извади всички произволни имена от уеб страницата.

Ако стартирате скрипта за втори път, той трябва да върне нов списък с произволни имена, както можете да видите на екранната снимка по-долу.

Заключение:

Тази статия трябва да ви помогне да започнете работа със Selenium с помощта на уеб браузъра Firefox. Трябва да можете да настроите доста лесно драйверен проект на Selenium Firefox Gecko и да изпълнявате тестове на браузъра си, уеб автоматизация и задачи за изстъргване на уеб.

Пристанища с отворен код на търговски игрални машини
Безплатни разширения на играта с отворен код и междуплатформени игри могат да се използват за възпроизвеждане на стари, както и някои от доста скорошн...
Най-добрите игри за команден ред за Linux
Командният ред не е само най-големият ви съюзник при използване на Linux - той може да бъде и източник на забавление, защото можете да го използвате, ...
Най-добрите приложения за картографиране на геймпад за Linux
Ако искате да играете игри на Linux с геймпад вместо типична система за въвеждане на клавиатура и мишка, има някои полезни приложения за вас. Много ко...