Selenium

Як отримати поточну URL-адресу за допомогою селену

Як отримати поточну URL-адресу за допомогою селену
Селен - це інструмент для тестування браузера, автоматизації веб-сайтів та веб-вишкрібання. Працюючи над своїми проектами Selenium, можливо, вам знадобиться знати URL-адресу сторінки, яку відображає ваш веб-браузер, керований Selenium. Ця інформація може бути корисною для відстеження URL-адреси, звідки ви витягли деякі дані, щоб ви могли автоматично оновлювати дані за допомогою якогось сценарію.

У цій статті я збираюся показати вам, як отримати поточну URL-адресу браузера за допомогою Selenium. Отже, давайте почнемо.

Передумови:

Щоб випробувати команди та приклади цієї статті, ви повинні мати,

1) Дистрибутив Linux (бажано Ubuntu), встановлений на вашому комп’ютері.
2) Python 3, встановлений на вашому комп'ютері.
3) PIP 3, встановлений на вашому комп'ютері.
4) Пітон virtualenv пакет, встановлений на вашому комп'ютері.
5) Веб-браузери Mozilla Firefox або Google Chrome, встановлені на вашому комп’ютері.
6) Повинен знати, як встановити драйвер Firefox Gecko або веб-драйвер Chrome.

Для виконання вимог 4, 5 та 6, будь ласка, прочитайте мою статтю Вступ до селену з Python 3 на Linuxhint.ком.

Ви можете знайти багато статей з інших тем на LinuxHint.ком. Обов’язково перевірте їх, якщо вам потрібна допомога.

Налаштування каталогу проектів:

Щоб все було організовано, створіть новий каталог проектів селен-url / наступним чином:

$ mkdir -pv селен-url / драйвери

Перейдіть до селен-url / каталог проекту наступним чином:

$ cd селен-url /

Створіть віртуальне середовище Python у каталозі проекту наступним чином:

$ віртуаленв .венв

Активуйте віртуальне середовище наступним чином:

$ джерело .venv / bin / активувати

Встановіть бібліотеку Selenium Python у своє віртуальне середовище за допомогою PIP3 наступним чином:

$ pip3 встановити селен

Завантажте та встановіть усі необхідні веб-драйвери в водії / каталог проекту. У своїй статті я пояснив процес завантаження та встановлення веб-драйверів Вступ до селену з Python 3. Якщо вам потрібна допомога, шукайте далі LinuxHint.ком для цієї статті.

Я буду використовувати веб-браузер Google Chrome для демонстрації в цій статті. Отже, я буду використовувати хромедрівер бінарний із селеном. Вам слід використовувати geckodriver двійковий файл, якщо ви хочете використовувати веб-браузер Firefox.

Отримання поточної URL-адреси за допомогою селену:

Створіть скрипт Python ех01.py у своєму каталозі проекту та введіть у ньому наступні рядки кодів.

з веб-драйвера для імпорту селену
з селену.веб-драйвер.загальний.імпортувати ключі
options = веб-драйвер.Опції Chrome ()
варіанти.безголовий = Правда
браузер = веб-драйвер.Chrome (executable_path = "./ drivers / chromedriver ", options = options)
браузер.get ("https: // duckduckgo.com / ")
друк (браузер.current_url)
браузер.закрити ()

Закінчивши, збережіть файл ех01.py Скрипт Python.

Тут рядки 1 та 2 імпортують усі необхідні компоненти з бібліотеки селену Python.

Рядок 4 створює об’єкт "Параметри Chrome", а рядок 5 включає безголовий режим для веб-браузера Chrome.

У рядку 7 створюється Chrome браузер об'єкт за допомогою хромедрівер двійковий з водії / каталог проекту.

Рядок 9 повідомляє браузеру завантажити качку.веб-сайт com.

У рядку 10 друкується поточна URL-адреса браузера. Ось, браузер.current_url властивість використовується для доступу до поточної URL-адреси браузера.

Рядок 12 закриває браузер.

Запустіть скрипт Python ех01.py наступним чином:

$ python3 ex01.py

Як бачите, поточна URL-адреса (https: // duckduckgo.com) надруковано на консолі.

У попередньому прикладі я відвідав веб-сайт duckduckgo.com та надрукував поточну URL-адресу на консолі. Це повертає URL-адресу сторінки, яку ми відвідуємо. Не дуже химерно, оскільки ми вже знаємо URL-адресу сторінки. Тепер давайте шукати щось на DuckDuckGo і спробувати роздрукувати URL-адресу сторінки результатів пошуку на консолі.

Створіть скрипт Python ех02.py у своєму каталозі проекту та введіть у ньому наступні рядки кодів.

з веб-драйвера для імпорту селену
з селену.веб-драйвер.загальний.імпортувати ключі
options = веб-драйвер.Опції Chrome ()
варіанти.безголовий = Правда
браузер = веб-драйвер.Chrome (executable_path = "./ drivers / chromedriver ", options = options)
браузер.get ("https: // duckduckgo.com / ")
друк (браузер.current_url)
searchInput = браузер.find_element_by_id ('search_form_input_homepage')
searchInput.send_keys ('селен hq' + клавіші.ENTER)
друк (браузер.current_url)
браузер.закрити ()

Закінчивши, збережіть файл ех02.py Скрипт Python.

Тут рядки 1-10 такі ж, як у ех01.py. Отже, я більше їх не пояснюю.

Рядок 12 знаходить текстове поле пошуку та зберігає його у searchInput змінна.

Рядок 13 надсилає пошуковий запит селен HQ в searchInput текстове поле та натискає використання ключа Ключі.ENTER.

Після завантаження сторінки пошуку, браузер.current_url використовується для доступу до оновленої поточної URL-адреси.

Рядок 15 друкує оновлену поточну URL-адресу на консолі.

Рядок 17 закриває браузер.

Запустіть ех02.py Скрипт Python наступним чином:

$ python3 ex02.py

Як бачите, сценарій Python ех02.py друкує 2 URL-адреси.

Перший - це URL домашньої сторінки пошукової системи DuckDuckGo.

Другий - це оновлена ​​поточна URL-адреса після виконання пошуку в пошуковій системі DuckDuckGo за допомогою запиту селен HQ.

Висновок:

У цій статті я показав вам, як отримати поточну URL-адресу веб-браузера за допомогою бібліотеки Selenium Python. Тепер ви зможете зробити свої проекти Selenium більш цікавими.

Битва за Веснот 1.13.6 Розробка випущена
Битва за Веснот 1.13.6, випущений минулого місяця, є шостим випуском розробки в 1.13.x, і це забезпечує низку вдосконалень, особливо до інтерфейсу кор...
Як встановити League of Legends на Ubuntu 14.04
Якщо ви шанувальник League of Legends, то це можливість для вас тестувати League of Legends. Зверніть увагу, що LOL підтримується на PlayOnLinux, якщо...
Встановіть останню стратегічну гру OpenRA на Ubuntu Linux
OpenRA - це ігровий движок Libre / Free Real Time Strategy, який відтворює ранні ігри Вествуда, такі як класичний Command & Conquer: Red Alert. Пошире...