Рубрики
Без рубрики

Использование Selenium Чтобы войти на сайт

До сих пор все сообщения представляют Selenium и Python. Сегодня мы собираемся написать селен … Помечено селен, Python, автоматизация.

До сих пор все сообщения представляют 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”