Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём неправильно. Необходимо обновить браузер или попробовать использовать другой.
Прежде чем перейти к коду, стоит отметить, что взаимодействие с формами регистрации через Selenium — это не только способ автоматически заполнить поля фейковыми данными, но и одна из базовых задач в автотестировании веб-приложений. Именно на примере регистрации QA-инженеры чаще всего пишут свои первые тест-кейсы: проверяют, что поля принимают корректные значения, форма реагирует на ввод, а после отправки данных пользователь успешно попадает в систему. В этой статье мы разберём практическую сторону — как находить элементы формы и заполнять их программно, а идею проверки корректности данных и обработки ошибок валидации держите в уме как следующий логичный шаг после освоения базового взаимодействия.
Приветствую, дамы и господа
В прошлой части я показал, как устанавливать веб-драйвера и использовать веб-локаторы. Вторая часть будет намного интереснее.
Как я и говорил в прошлой статье, у Selenium существуют веб-локаторы для нахождения конкретных элементов. Взаимодействие с сайтом может быть разное: поля ввода, открытие меню, чекбоксы и многое другое.
Давайте осуществим поиск на сайте YouTube. Напишем какой-нибудь запрос в поиске и нажмем ENTER. Для начала импортируем:
Python:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome.service import Service
from selenium.common.exceptions import NoSuchElementException
import time
• common.by- библиотека Selenium. Её главная задача: принимать веб-локаторы и использовать их. • common.keys- позволяет вводить текст в полях вводах, также имеет возможность нажатия клавиш. • webdriver.chrome.service- новая библиотека Selenium, которая принимает путь драйвера. • .common.exceptions- исключения библиотеки Selenium.
Executable_path устарел, используйте Service()
На скрине видно, что executable_path давно устарел и лучше всего использовать объект Service, который принимает путь драйвера.
Чтобы Selenium понял, где осуществлять поиск, передаем ему параметр - элемент веб-локатора.
Ищем элемент поиска YouTube
Переходим на сайт youtube.com, открываем Инструменты разработчика (код элемента), нажав на F12 или CTRL+SHIFT + I.
Затем нажимаем кнопку в левом вернем углу для нахожения конкретного элемента - поиска YouTube:
Отлично! Всегда помните, что поля ввода имеют тэг <input>. Внимательно посмотрите содержание этого тэга. Нам нужен тэг, который имеет атрибут name=search_query:
Мы нашли атрибут NAME и он принимает параметр search_query.
Создаем класс и конструктор
Python:
class SearchYoutube:
def __init__(self, path: str):
self.path = Service() # путь драйвера
self.browser = webdriver.Chrome(service=self.path) # передаем путь
self.url = "https://youtube.com" # переход на страницы YouTube
self.search = "search_query"
Тут мы создаем класс SearchYoutube. Затем создаем конструктор, который принимает атрибуты:
•path- передается объект Service(), в конце все укажем. • browser- запускаем браузер. В качестве аргумента он принимает service со значением пути драйвера. • url- принимает ссылку. • search- элемент NAME.
Теперь переходим к функциям.
Метод go_to_site()
Метод, который переходит на сайт YouTube.
Python:
def go_to_site(self):
print(f"... переход на сайт {self.url} ...")
self.browser.get(self.url)
time.sleep(4) # делаем паузу
Метод search_youtube()
Его задача: найти элемент поиска. С помощью функции find_element находим его, в качестве параметров метод принимает тип элемента и сам элемент.
Python:
def search_youtube(self):
print(f"... ищем элемент поиска...")
try:
element = self.browser.find_element(By.NAME, self.search)
element.send_keys("modern talking") # вбиваем это в поиск
element.send_keys(Keys.ENTER) # нажимаем ENTER
time.sleep(5)
except NoSuchElementException:
print(f"Элемент {search} не был найден!")
browser.quit()
Мы делаем исключение с помощью блока try и except. Если был найден элемент, то продолжаем работу, если нет - завершаем. После нахождения элемента с помощью send_keys мы вписываем какой-нибудь запрос, затем нажимаем ENTER и устанавливаем задержку на 5 секунд.
Это всё, с осуществлением поиска закончено.
Python:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome.service import Service
from selenium.common.exceptions import NoSuchElementException
import time
class SearchYoutube:
def __init__(self, path: str):
self.path = Service() # путь драйвера
self.browser = webdriver.Chrome(service=self.path) # передаем путь
self.url = "https://youtube.com" # переход на страницы YouTube
self.search = "search_query"
def go_to_site(self):
print(f"... переход на сайт {self.url} ...")
self.browser.get(self.url)
time.sleep(4) # делаем паузу
def search_youtube(self):
print(f"... ищем элемент поиска...")
try:
element = self.browser.find_element(By.NAME, self.search)
element.send_keys("modern talking") # вбиваем это в поиск
element.send_keys(Keys.ENTER) # нажимаем ENTER
time.sleep(5)
except NoSuchElementException:
print(f"Элемент {search} не был найден!")
browser.quit()
def main():
obj = SearchYoutube(r'chromedriver\chromedriver.exe')
obj.go_to_site()
obj.search_youtube()
if __name__ == '__main__':
main()
Вы узнали о полях ввода. Чтобы ввести запрос, вам нужно использовать send_keys. Так же этот метод поддерживает нажатия клавиш. Попробуйте использовать его на других сайтах, где имеется поля ввода, и у вас всё будет работать.
DropDown
Когда вы переходите на сайт регистрации, вам просят указать ваш пол, мы в это время открываем простенькое меню и выбираем нужный нам параметр. Для демонстрации существует демо-сайт регистрации, именно его мы и будем тестировать.
Итак, давайте я вам покажу, как использовать элемент DropDown, позволяющий открыть меню выбора. Открываем сайт и видим вот такую форму:
Это простая регистрация. Нам нужно именно меню с выбором страны (country). По умолчанию выбрана Албания.
Давайте получим элемент меню NAME: country
Отлично, теперь приступаем к коду. Я не буду показывать примеры на ООП, так как это небольшая задача. Если вы хотите, то можете попробовать.
Импортируем библиотеки
Python:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.support.ui import Select
import time
selenium.webdriver.support.ui import Select - после того, как мы нашли нужный элемент, мы должны передать его Select'у.
Драйвера и переход на сайт
Python:
service = Service('/chromedriver/chromedriver.exe')
browser = webdriver.Chrome(service=service)
browser.get('https://demo.guru99.com/test/newtours/register.php')
C помощью объекта Service() мы указываем путь драйвера, затем передаем это в класс webdriver.Chrome.
Указывем элемент и запускаем
Python:
dropdown = browser.find_element(By.NAME, 'country')
drop = Select(dropdown)
drop.select_by_visible_text("ARUBA")
time.sleep(5)
Как и, говорил объект Select принимает переменную dropdown, в которой указан элемент самого меню. select_by_visible_text - при открытии меню мы видим страны, в нашем случае мы выбираем страну ARUBA.
UPD 1: select_by_index
Вместо использования select_by_visible_text вы можете использовать select_by_index. В отличии от первого, в методе select_by_index можно указывать индексы меню, в нашем случае - стран:
Самый первая страна из список является Албания, но нам нужна именно Алгерия:
Python:
drop.select_by_index(1) # ALGERIA
Глава II: Регистрация аккаунта используя демо-сайт
Напишем программу, который зарегистрирует нам аккаунт на тестовом сайте.
Начнем с такой простой формы на сайте:
Для заполнения мы не будем использовать одни и те же данные. Было бы лучше использовать библиотеку faker, которая позволяет генерировать нужные данные: имена и фамилии; индекс кода; страна и многое другое. А для создания случайных телефонных номеров я решил использовать библиотеку phone_gen. Всё это у нас получится связать с Selenium'ом.
Итак, мы видели простую форму регистрации. Она разделены на три блока: Contact Information; mailing information и user information. Для каждых этих блоков я решил сделать отдельные методы, так будет проще.
Импортируем необходимые библиотеки
Python:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome.service import Service
import time
# fake data
from faker import Faker
from phone_gen import PhoneNumber
fake = Faker()
phone_gen - предназначен для случайной генерации номеров. faker- нужен для фейковых данных: имя и фамилия; город; индекс и др.
Переменная fake содержит экземпляр класса Faker().
Как и в другом примере, мы могли бы получить эти данные в конструкторе __init__, но мне кажется, что в словаре будет понятнее.
Итак, что мы здесь делаем? Мы создаем ключ ContactInfo со значением списка: firstNamelastNamephoneuserName - это элементы полей ввода. Точно так же и с другими ключами.
А теперь переменные, класс и конструктор
Python:
# CONTACT INFORMATION
firstname = elements_reg["ContactInfo"][0]
lastname = elements_reg["ContactInfo"][1]
phone_reg = elements_reg["ContactInfo"][2]
email = elements_reg["ContactInfo"][3]
# MAILING INFORMATION
address = elements_reg["MailingInfo"][0]
city = elements_reg["MailingInfo"][1]
state = elements_reg["MailingInfo"][2]
zipcode = elements_reg["MailingInfo"][3]
country = elements_reg["MailingInfo"][4]
# USER INFORMATION
username = elements_reg["UserInfo"][0]
password = elements_reg["UserInfo"][1]
confirm = elements_reg["UserInfo"][2]
class CreateAccount:
def __init__(self, path: str):
self.path = Service() # путь драйвера
self.browser = webdriver.Chrome(service=self.path) # передаем путь
self.url = "https://demo.guru99.com/test/newtours/register.php"
Здесь мы сразу создаем переменные для каждого блока.
Метод contact_information
Задача первая: заполняем блок Contact information:
Python:
def contact_information(self):
# Контактная информация: Имя и Фамилия; номер и e-mail
# First Name
first_name_entry = self.browser.find_element(By.NAME, firstname)
first_name_entry.send_keys(fake.first_name())
time.sleep(1.90)
# Last Name
last_name_entry = self.browser.find_element(By.NAME, lastname)
last_name_entry.send_keys(fake.last_name())
time.sleep(5)
# Phone
phone_entry = self.browser.find_element(By.NAME, phone_reg)
en_phone_get = PhoneNumber("US") # получаем английский номер
number = en_phone_get.get_number()
phone_entry.send_keys(number)
time.sleep(4)
# E-mail
email_entry = self.browser.find_element(By.NAME, email)
email_entry.send_keys(fake.free_email())
time.sleep(1.90)
Сначала заполняем поле Firstname. Методу find_element передаем элемент поля ввода firstname. Затем мы используем send_keys, с помощью которого будем вводить случайное имя, используя fake.first_name(). Для Last Name (фамилия) делаем то же самое.
А теперь номер, здесь чуть-чуть по-другому. Мы создали переменную en_phone_get, которая содержит объект PhoneNumber. На вход он принимает страну номера (в нашем случае - США). Затем создаем переменную number, в которую записываем номер и вводим его с помощью send_keys.
Ну и последнее, осталось поле E-mail. Здесь нам поможет библиотека Faker, в которой сгенерируем случайный E-Mail с помощью метода free_email.
Код функции и результат:
Python:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Select
from selenium.webdriver.chrome.service import Service
import time
# fake data
from faker import Faker
from phone_gen import PhoneNumber
fake = Faker()
# словарь с данными
elements_reg = {
"ContactInfo": ["firstName", "lastName", "phone", "userName"]
}
# устанавливаем
firstname = elements_reg["ContactInfo"][0]
lastname = elements_reg["ContactInfo"][1]
phone_reg = elements_reg["ContactInfo"][2]
email = elements_reg["ContactInfo"][3]
class CreateAccount:
def __init__(self, path: str):
self.path = Service() # путь драйвера
self.browser = webdriver.Chrome(service=self.path) # передаем путь
self.url = "https://demo.guru99.com/test/newtours/register.php"
def go_to_site(self):
print(f"Переход на сайт регистрации: {self.url}")
self.browser.get(self.url)
time.sleep(3)
def contact_information(self):
# Контактная информация: Имя и Фамилия; номер и e-mail
# First Name
first_name_entry = self.browser.find_element(By.NAME, firstname)
first_name_entry.send_keys(fake.first_name())
time.sleep(1.90)
# Last Name
last_name_entry = self.browser.find_element(By.NAME, lastname)
last_name_entry.send_keys(fake.last_name())
time.sleep(1.90)
# Phone
phone_entry = self.browser.find_element(By.NAME, phone_reg)
en_phone_get = PhoneNumber("US") # получаем английский номер
number = en_phone_get.get_number()
phone_entry.send_keys(number)
time.sleep(1.90)
# E-mail
email_entry = self.browser.find_element(By.NAME, email)
email_entry.send_keys(fake.free_email())
time.sleep(5)
obj = CreateAccount(r'chromedriver\chromedriver.exe')
obj.go_to_site()
obj.contact_information()
Result:
Метод mailing Information
Задача вторая: заполняем mailing Information:
Теперь переходим к следующему блоку. Всё как обычно - открываем инструменты разработчика и получаем элементы нужных полей ввода.
Python:
def mailing_information(self):
# Место проживание: Адрес и город; провинция; zip-code; выбор страны
# Address
address_entry = self.browser.find_element(By.NAME, address)
address_entry.send_keys(fake.street_address())
time.sleep(4)
# City
city_entry = self.browser.find_element(By.NAME, city)
city_entry.send_keys(fake.city())
time.sleep(1.90)
# State/province
state_entry = self.browser.find_element(By.NAME, state)
state_entry.send_keys(fake.state())
time.sleep(1.90)
# Postal Code/zip-code
zipcode_entry = self.browser.find_element(By.NAME, zipcode)
zipcode_entry.send_keys(fake.zipcode())
time.sleep(1.90)
# Country
country_entry = self.browser.find_element(By.NAME, country)
select_country = Select(country_entry)
select_country.select_by_visible_text("UNITED STATES")
Сначала мы получаем случайный адрес с помощью fake.street_address(), затем вводим его и устанавливаем задержу. Точно так же и с городом, провинцией и индексом. Единственное изменение - это выборстраны через меню, тут по-умолчанию я выбрал США.
Код функции и результат:
Python:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Select
from selenium.webdriver.chrome.service import Service
import time
# fake data
from faker import Faker
from phone_gen import PhoneNumber
fake = Faker()
# словарь с данными
elements_reg = {
"ContactInfo": ["firstName", "lastName", "phone", "userName"],
"MailingInfo": ["address1", "city", "state", "postalCode", "country"],
"UserInfo": ["email", "password", "confirmPassword"]
}
# CONTACT INFORMATION
firstname = elements_reg["ContactInfo"][0]
lastname = elements_reg["ContactInfo"][1]
phone_reg = elements_reg["ContactInfo"][2]
email = elements_reg["ContactInfo"][3]
# MAILING INFORMATION
address = elements_reg["MailingInfo"][0]
city = elements_reg["MailingInfo"][1]
state = elements_reg["MailingInfo"][2]
zipcode = elements_reg["MailingInfo"][3]
country = elements_reg["MailingInfo"][4]
# USER INFORMATION
username = elements_reg["UserInfo"][0]
password = elements_reg["UserInfo"][1]
confirm = elements_reg["UserInfo"][2]
class CreateAccount:
def __init__(self, path: str):
self.path = Service() # путь драйвера
self.browser = webdriver.Chrome(service=self.path) # передаем путь
self.url = "https://demo.guru99.com/test/newtours/register.php"
def go_to_site(self):
print(f"Переход на сайт регистрации: {self.url}")
self.browser.get(self.url)
time.sleep(2)
def contact_information(self):
# Контактная информация: Имя и Фамилия; номер и e-mail
# First Name
first_name_entry = self.browser.find_element(By.NAME, firstname)
first_name_entry.send_keys(fake.first_name())
time.sleep(1.90)
# Last Name
last_name_entry = self.browser.find_element(By.NAME, lastname)
last_name_entry.send_keys(fake.last_name())
time.sleep(1.90)
# Phone
phone_entry = self.browser.find_element(By.NAME, phone_reg)
en_phone_get = PhoneNumber("US") # получаем английскую номер
number = en_phone_get.get_number()
phone_entry.send_keys(number)
time.sleep(1.90)
# E-mail
email_entry = self.browser.find_element(By.NAME, email)
email_entry.send_keys(fake.free_email())
time.sleep(3)
def mailing_information(self):
# Место проживание: Адрес и город; провинция; zip-code; выбор страны
# Address
address_entry = self.browser.find_element(By.NAME, address)
address_entry.send_keys(fake.street_address())
time.sleep(4)
# City
city_entry = self.browser.find_element(By.NAME, city)
city_entry.send_keys(fake.city())
time.sleep(1.90)
# State/province
state_entry = self.browser.find_element(By.NAME, state)
state_entry.send_keys(fake.state())
time.sleep(1.90)
# Postal Code/zip-code
zipcode_entry = self.browser.find_element(By.NAME, zipcode)
zipcode_entry.send_keys(fake.zipcode())
time.sleep(1.90)
# Country
country_entry = self.browser.find_element(By.NAME, country)
select_country = Select(country_entry)
select_country.select_by_visible_text("UNITED STATES")
Здесь опять же все просто (думаю, что вы поймете). Только вот с паролем я сделал по-другому, установил статический, потому что при каждом использовании fake.password пароль все время меняется. Функция click_start позволяет нажать на кнопку.
Сохраняем все полученные данные в JSON
Было бы хорошо полученные данные засунуть в JSON файл. Просто так сделать это не получится. Например, если напишем такой код: f.write(fake.city()
то данные в файле будут другими, т. к. библиотека просто сгенерирует другие данны.
Пришла мысль, что при вводе текста мы можем извлечь его с помощью такой функции:
Python:
password_entry.get_attribute('value')
решил так сделать и все заработало, приступим к коду:
Python:
import json
def save_data_to_json(self):
enter_file = input("[ + ] Укажите название нового JSON-файла -> ")
# словарь формат, который JSON должен содержать
aList = [
{"Firstname:": firstname_json, "last_name": lastname_json},
{"Address": address_json, "City": city_json, "State/province": state_json, "Postal code": zip_json, "Country": country_json},
{"Username": username_json, "Password": password_json}
]
jsonstring = json.dumps(aList, indent=4)
with open(enter_file, 'w') as f:
f.write(jsonstring)
Импортируем библиотеку json, создаем список aList, который содержит формат данных, который JSON должен сохранить.
Так же мы сделали input(), который запрашивает название выходного JSON-файла.
Ну, с регистрацией аккаунта закончено, наконец-то мы это сделали! А вот и полный код:
Python:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Select
from selenium.webdriver.chrome.service import Service
import time
import json
# fake data
from faker import Faker
from phone_gen import PhoneNumber
fake = Faker()
# словарь с данными элементов
elements_reg = {
"ContactInfo": ["firstName", "lastName", "phone", "userName"],
"MailingInfo": ["address1", "city", "state", "postalCode", "country"],
"UserInfo": ["email", "password", "confirmPassword"]
}
# CONTACT INFORMATION
firstname = elements_reg["ContactInfo"][0]
lastname = elements_reg["ContactInfo"][1]
phone_reg = elements_reg["ContactInfo"][2]
email = elements_reg["ContactInfo"][3]
# MAILING INFORMATION
address = elements_reg["MailingInfo"][0]
city = elements_reg["MailingInfo"][1]
state = elements_reg["MailingInfo"][2]
zipcode = elements_reg["MailingInfo"][3]
country = elements_reg["MailingInfo"][4]
# USER INFORMATION
username = elements_reg["UserInfo"][0]
password = elements_reg["UserInfo"][1]
confirm = elements_reg["UserInfo"][2]
class CreateAccount:
def __init__(self, path: str):
"""
Настройка...
self.path - объект Service который требует путь драйвера
self.browser - указываем браузер и передаем параметр path
self.url - ссылка регистрации сайта, на котором мы должны перейти
"""
self.path = Service() # путь драйвера
self.browser = webdriver.Chrome(service=self.path) # передаем путь
self.url = "https://demo.guru99.com/test/newtours/register.php"
def go_to_site(self):
print(f"Переход на сайт регистрации: {self.url}")
self.browser.get(self.url)
time.sleep(2)
def contact_information(self):
"""
Здесь мы сразу же находим элементы и вбиваем их.
self.first_name_entry - сам поле ввода FirstName
firstname_json - переменная которая хранит атрибут введенного в поле вводе
точно так же и с другими поля вводами...
"""
# Контактная информация: Имя и Фамилия; номер и e-mail
# First Name
first_name_entry = self.browser.find_element(By.NAME, firstname)
first_name_entry.send_keys(fake.first_name())
global firstname_json
firstname_json = first_name_entry.get_attribute('value')
time.sleep(1.90)
# Last Name
last_name_entry = self.browser.find_element(By.NAME, lastname)
last_name_entry.send_keys(fake.last_name())
global lastname_json
lastname_json = last_name_entry.get_attribute('value')
time.sleep(1.90)
# Phone
phone_entry = self.browser.find_element(By.NAME, phone_reg)
en_phone_get = PhoneNumber("US") # получаем английскую номер
number = en_phone_get.get_number()
phone_entry.send_keys(number)
global phone_json
phone_json = phone_entry.get_attribute('value')
time.sleep(1.90)
# E-mail
email_entry = self.browser.find_element(By.NAME, email)
email_entry.send_keys(fake.free_email())
global email_json
email_json = email_entry.get_attribute('value')
time.sleep(3)
def mailing_information(self):
# Место проживание: Адрес и город; провинция; zip-code; выбор страны
# Address
address_entry = self.browser.find_element(By.NAME, address)
address_entry.send_keys(fake.street_address())
global address_json
address_json = address_entry.get_attribute('value')
time.sleep(4)
# City
city_entry = self.browser.find_element(By.NAME, city)
city_entry.send_keys(fake.city())
global city_json
city_json = city_entry.get_attribute('value')
time.sleep(1.90)
# State/province
state_entry = self.browser.find_element(By.NAME, state)
state_entry.send_keys(fake.state())
time.sleep(1.90)
global state_json
state_json = state_entry.get_attribute('value')
# Postal Code/zip-code
zipcode_entry = self.browser.find_element(By.NAME, zipcode)
zipcode_entry.send_keys(fake.zipcode())
time.sleep(1.90)
global zip_json
zip_json = zipcode_entry.get_attribute('value')
# Country
country_entry = self.browser.find_element(By.NAME, country)
select_country = Select(country_entry)
select_country.select_by_visible_text("UNITED STATES")
global country_json
country_json = country_entry.get_attribute('value')
def user_information(self):
password_default = "codeby!@$444"
username_entry = self.browser.find_element(By.NAME, username)
username_entry.send_keys(fake.user_name())
time.sleep(1.90)
global username_json
username_json = username_entry.get_attribute('value')
password_entry = self.browser.find_element(By.NAME, password)
password_entry.send_keys(password_default)
time.sleep(1.90)
global password_json
password_json = password_entry.get_attribute('value')
confirm_password_entry = self.browser.find_element(By.NAME, confirm)
confirm_password_entry.send_keys(password_default)
time.sleep(1.90)
def click_start(self):
button_send = self.browser.find_element(By.NAME, 'submit')
button_send.click()
def save_data_to_json(self):
"""
Сохранение в JSON формате
создаем переменную enter_file он от нас требует название джсон файла
переменная alist содержит формат отображение даты.
"""
enter_file = input("[ + ] Укажите название нового JSON-файла -> ")
# словарь формат, который JSON должен содержать
aList = [
{"Firstname:": firstname_json, "last_name": lastname_json, "Phone": phone_json, "E-mail": email_json},
{"Address": address_json, "City": city_json, "State/province": state_json, "Postal code": zip_json, "Country": country_json},
{"Username": username_json, "Password": password_json}
]
jsonstring = json.dumps(aList, indent=4)
with open(enter_file, 'w') as f:
f.write(jsonstring)
def all_function_start(self):
"""Собираем все эти методы в один метод"""
self.go_to_site()
self.contact_information()
self.mailing_information()
self.user_information()
self.click_start()
self.save_data_to_json()
# завершение...
def main()
obj = CreateAccount(r'chromedriver\chromedriver.exe')
obj.all_function_start()
if __name__ == "__main__":
main()
Чистый JSON файл:
Завершение...
Вы научились взаимодействовать с сайтом и так же регистрировать аккаунт. Надеюсь, вам понравилась моя статья. Так же буду благодарен за нахождение ошибок в статье.
Решил оставить шпаргалочку здесь.
Библиотека Faker
Показывает:
fake.first_name()
Имя человека;
fake.last_name()
Фамилия человека;
en_phone_get = PhoneNumber("US")
Получение американского номера;
fake.free_email()
Почта(yahoo, gmail, yandex)
fake.street_address()
Адрес улицы человека;
fake.city()
Город;
fake.state()
Штат/провинция;
fake.zipcode()
Индекс код;
fake.username()
Никнейм человека.
Мануалы которые вам помогут
Selenium Documentation Python - click() Faker Documantation Pyhon - click() Ооп Python - click() Установка Selenium и реальное применение - click()
На данном сайте используются файлы cookie, чтобы персонализировать контент и сохранить Ваш вход в систему, если Вы зарегистрируетесь. Продолжая использовать этот сайт, Вы соглашаетесь на использование наших файлов cookie.
Комментарии
1