До сих пор все сообщения представляют Selenium и Python. Сегодня мы собираемся написать тест Selenium, который войдет на сайт.
Первый пример, который я буду использовать, это мой собственный сайт. Первый шаг – выяснить, какой URL для вашей формы входа: https://app.crassbrosertesting.com/Login.
Следующим шагом будет находить поля пользователя и пароля.
Начнем с поля имени пользователя. Я проверю это поле с Chrome devtools, и я вижу HTML, который выглядит так:
Это много текста Но я оставил его там, чтобы увидеть тип вещей, которые вам нужно будет умственно разбирать. Большая часть текста выше – это изображение, которое используется в поле «Форма». Важные вещи следует отметить, являются атрибутами, которые мы могли бы использовать, чтобы найти это поле.
Имя поле выглядит хорошо “имя пользователя. «Это ясно и было бы хорошим выбором. Но есть идентификатор поле «IgrapeMail». И это выглядит еще лучше. Таким образом, локатор будет выглядеть что-то подобное.
driver.find_element(By.ID, "inputEmail")
Далее мы хотим найти локатор для поля пароля. Я снова буду использовать Chrome devtools. Я нажму в поле Пароль и щелкните правой кнопкой мыши и выберите «Осмотреть». Ниже я вставил HTML.
Обратите внимание на выбор, у нас есть имя, хорошо, но удостоверение личности лучше. Ниже приведен наш локатор, который мы будем использовать.
driver.find_element(By.ID, "inputPassword")
Конечный элемент нам нужно будет использовать форму входа в систему, – это кнопка, которую нам нужно нажать. Снова используйте Chrome devtools и щелкните правой кнопкой мыши на кнопке и проверьте.
Опять же, мы выберем удостоверение личности и сделаем локатор.
driver.find_element(By.ID, "login-btn")
На данный момент у нас есть вся информация, необходимая для проверки нашего сценария SELENIUM.
Одна вещь, которую я люблю делать, чтобы убедить себя, что у меня есть правильные локаторы, тестируют каждый из них индивидуально. Это не нужно строго нужно, но я знаю, что тест будет работать, если я проверю эти элементы в одиночку.
Я напишу крошечные маленькие тесты, которые управляют Chrome и убедитесь, что веб-элементы печатаются, когда я ее нахожую. Для полей, которые я обычно поставлю файловые данные в поле, чтобы убедиться, что она работает.
from selenium import webdriver from selenium.webdriver.common.by import By import time driver = None try: cpath = "e:\\projects\\headless\\chromedriver.exe" driver = webdriver.Chrome(cpath) driver.get("https://app.crossbrowsertesting.com/login") e = driver.find_element(By.ID, "inputEmail") print(e) e.send_keys("selenium") driver.save_screenshot("test1.png") finally: if driver is not None: driver.close()
На этом этапе вы можете посмотреть на сохраненное test1.png и убедитесь, что вы набрали имя пользователя в правильное поле.
Последний скрипт имеет всего несколько линий в нем.
from selenium import webdriver from selenium.webdriver.common.by import By import time driver = None try: cpath = "e:\\projects\\headless\\chromedriver.exe" driver = webdriver.Chrome(cpath) driver.get("https://app.crossbrowsertesting.com/login") e = driver.find_element(By.ID, "inputEmail") print(e) e.send_keys("selenium") e = driver.find_element(By.ID, "inputPassword") e.send_keys("supersecretpasswordhere") e = driver.find_element(By.ID, "login-btn") e.click() finally: if driver is not None: driver.close()
Следующая задача для этого скрипта будет обнаружить, что логин был успешным или не удастся. Я оставлю это для другого поста.
Надеюсь, мы выбрали удостоверения личности для наших локаторов, поэтому наш скрипт когда-то сделан, должен оставаться стабильным. Если наши разработчики переднего конца когда-либо изменяют идентификационный текст в форме входа в систему, этот скрипт сломается.
Оригинал: “https://dev.to/tonetheman/using-selenium-to-login-to-a-website-10o4”