Селен

Уеб автоматизация на селен с Python

Уеб автоматизация на селен с Python
Всеки използва мрежата в една или друга точка, така че е огромно призив за разработчиците да гарантират, че техните уеб приложения функционират по предназначение. За да направите това, уеб автоматизацията може да бъде много полезна.

За да бъде успешен всеки търговски софтуер, той трябва да премине няколко теста. Автоматизацията би могла да бъде полезна за потребителски тестове, като симулира използването на софтуер точно както потребителят би направил. Също така е полезно за тестове за проникване, като например опит за разбиване на пароли, извършване на SQL инжекции и т.н.

Освен тестването, уеб автоматизацията може да бъде много удобна за изстъргване на тежки уебсайтове с JavaScript.

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

Инсталация

Селенът може да бъде инсталиран в python с помощта на модула pip, както е показано в командата по-долу:

pip инсталирайте селен

Той ще инсталира библиотеката и необходимите зависимости, инсталирането може да бъде потвърдено чрез импортиране в интерактивна сесия.

$ python
Python 3.5.2 (по подразбиране, 14 септември 2017 г., 22:51:06)
[GCC 5.4.0 20160609] на linux
Напишете "помощ", "авторско право", "кредити" или "лиценз" за повече информация.
>>> импортиране на селен

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

Ще разгледаме как да инсталирате драйверите. За Mozilla Firefox можете да изтеглите неговия драйвер, известен като geckodriver от страницата на github. Ако сте потребител на Chrome, можете да изтеглите драйвера, известен като хромедривър от официалния сайт.

След изтеглянето добавяте драйвера към пътя. Лично аз бих искал да запазя такъв файл в моя / usr / local / bin директория и бих ви посъветвал да направите същото.

Ако искате да направите същото, командата по-долу трябва да го премести от текущата ви директория в кошче директория.

$ sudo mv geckodriver / usr / local / bin
$ sudo mv chromedriver / usr / local / bin

Добавям geckodriver или хромедривър за да отидете от тази директория, изпълнете следната команда.

$ export PATH = $ PATH: / usr / local / bin / geckodriver
$ export PATH = $ PATH: / usr / local / bin / chromedriver

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

За Firefox:

$ python
Python 3.5.2 (по подразбиране, 14 септември 2017 г., 22:51:06)
[GCC 5.4.0 20160609] на linux
Напишете "помощ", "авторско право", "кредити" или "лиценз" за повече информация.
>>> от webdriver за импортиране на селен
>>> webdriver.Firefox ()

За Chrome:

$ python
Python 3.5.2 (по подразбиране, 14 септември 2017 г., 22:51:06)
[GCC 5.4.0 20160609] на linux
Напишете "помощ", "авторско право", "кредити" или "лиценз" за повече информация.
>>> от webdriver за импортиране на селен
>>> драйвер = webdriver.Chrome ()

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

По-голямата част от кода за останалата част от тази статия ще бъде направена в интерактивната сесия, но можете да го напишете във файл, точно както обичайния скрипт на python.

Също така ще работим по шофьор променлива от горния код.

Посещение на уеб страници

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

Не забравяйте да използвате http: // или https: //, в противен случай ще трябва да се справите с неприятни грешки.

>>> драйвер.get ("http: // google.com ")

Това би заредило началната страница на Google.

Получаване на изходния код

След като се научихме да посещаваме уеб страници, можем да изтриваме данни от посетената уеб страница.

От шофьор обект, можем да получим изходния код, като извикаме страница_източник атрибут, след това можете да правите каквото пожелаете с html, използвайки библиотеката BeautifulSoup.

>> драйвер.страница_източник

Попълване на текстови полета

Ако например сме заредили началната страница на Google и искаме да въведем малко информация в полето за търсене; лесно може да се направи.

За целта използваме елемента inspector, за да проверим изходния код и да видим информацията за маркера в полето за търсене. За да направите това, просто щракнете с десния бутон върху полето за търсене и изберете инспектирай елемента.

На моята машина получих следното:

value = "" aria-label = "Търсене" aria-haspopup = "false" role = "combobox" aria-autocomplete = "list"
style = "border: medium none; padding: 0px; margin: 0px; height: auto; width: 100%;
фон: прозрачен
url ("data: image / gif; base64, R0lGODlhAQABAID / AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEA
Ow% 3D% 3D ") повторно превъртане 0% 0%; позиция: абсолютна; z-индекс: 6; ляво: 0px; контур:
среден няма; "dir =" ltr "spellcheck =" false "type =" text ">

Със селен можем да избираме елементи или по име на етикет, идентификатор, име на клас и т.н.

Те могат да бъдат приложени със следните методи:

.find_element_by_id
.find_element_by_tag_name
.find_element_by_class_name
.find_element_by_name

От уеб страницата на Google полето за търсене има идентификационен номер lst-ib, така че бихме намерили елемент по id.

>>> поле за търсене = драйвер.find_element_by_id ("lst-ib")

След като намерихме елемента и го запазихме в поле за търсене променлива, можем да изпълним някои операции в полето за търсене.

>>> поле за търсене.send_keys ("Планета Земя")

Това ще въведе текста „Планета Земя“ в полето.

>>> поле за търсене.изчисти ()

Това ще изчисти въведения текст от полето за търсене. Трябва да използвате send_keys метод отново, в следващия раздел щяхме да щракнем върху бутона за търсене, за да има какво да търсим.

Щракване върху десните бутони

След като напълнихме полето за търсене с малко информация, можем да продължим да търсим.

По същия начин, по който намерихме полето за търсене, е по същия начин, по който ще намерим бутона за търсене.

На моята машина получих следното:

type = "submit">

Разглеждайки това, можем да използваме атрибута name. Можем да го получим, като използваме кода по-долу:

>>> бутон_за търсене = драйвер.find_element_by_name ("btnK")

След като намерим желания маркер, можем да щракнем върху бутона, използвайки щракнете метод.

>>> бутон_за търсене.щракнете ()

Внимавайте обаче, поради автоматичните предложения на Google може в крайна сметка да потърсите нещо друго.

За да заобиколите това, трябва незабавно да накарате клавиатурата да натисне клавиша enter. Ключовете са извън обхвата на тази статия, но тук все пак е кодът.

>>> от селен.уеб драйвер.често срещани.ключове за импортиране
>>> поле за търсене = драйвер.find_element_by_id ("lst-ib")
>>> поле за търсене.send_keys ("Планета Земя")
>>> поле за търсене.send_keys (Клавиши.ВРЪЩАНЕ)

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

Този метод на кликване на buttosn не работи само с бутони, той работи и с връзки.

Правене на екранни снимки

Правилно сте прочели! Можете да правите екранни снимки с помощта на селен и това е толкова лесно, колкото и предишните раздели.

Това, което ще направим, е да се обадим на save_screenshot метод на обекта на драйвера, след това ще предадем името на изображението и ще бъде направена екранната снимка.

>>> драйвер.save_screenshot ("Planet-earth.png ")

Уверете се, че името на изображението има .png разширение, иначе може да се окажете с повредено изображение.

Когато приключите с операциите, можете да затворите браузъра, като изпълните следния код:

>>> драйвер.близо()

Заключение

Селенът е известен като много мощен инструмент и възможността да го използвате се счита за жизненоважно умение за тестерите за автоматизация. Селенът може да направи много повече от обсъжданото в тази статия, движенията на клавиатурата всъщност могат да бъдат възпроизведени, както е показано с Ключове.ВРЪЩАНЕ. Ако искате да научите повече за селена, можете да го проверите документация, това е съвсем ясно и лесно за използване.

WinMouse ви позволява да персонализирате и подобрите движението на показалеца на мишката на компютър с Windows
Ако искате да подобрите функциите по подразбиране на показалеца на мишката, използвайте безплатна програма WinMouse. Той добавя още функции, за да ви ...
Бутонът на левия бутон на мишката не работи в Windows 10
Ако използвате специална мишка с вашия лаптоп или настолен компютър, но бутонът на левия бутон на мишката не работи на Windows 10/8/7 по някаква причи...
Курсорът скача или се движи произволно, докато пишете в Windows 10
Ако установите, че курсорът на вашата мишка скача или се движи самостоятелно, автоматично, произволно, докато пишете в лаптоп или компютър на Windows,...