53 lines
3.9 KiB
Markdown
53 lines
3.9 KiB
Markdown
|
# Автотест по сценариям для стажировки в компании Тензор
|
|||
|
|
|||
|
Здесь представлен код для автотеста по сценариям из ТЗ. Весь код был написан на Python с использованием **__Selenium__**. В качестве браузера для тестирования был выбран **__Firefox__**, ввиду отсутствия пунктов ТЗ о том, в каких браузерах средует выполнить автотест.
|
|||
|
> Докскрины для функций было решено не делать, т.к. не знаю как будет проверяться работа, поэтому запишу описание работы сюда
|
|||
|
|
|||
|
Далее можно подробнее изучить код:
|
|||
|
## Сценарий 1:
|
|||
|
[Перейти к sc1.py](sc1.py)\
|
|||
|
Были импортированы следующие библиотеки и модули:
|
|||
|
- selenium,
|
|||
|
- selenium.webdriver:
|
|||
|
- By,
|
|||
|
- expected_conditions,
|
|||
|
- WebDriverWait,
|
|||
|
- Service,
|
|||
|
- pytest
|
|||
|
|
|||
|
1) С помощью функции `browser()` создаем фикстуру для браузера
|
|||
|
2) Основной код лежит в функции `test()`
|
|||
|
3) Для скипа всплывающего окна о куки следующие функции `close_popup_window(driver)` и `close_popup_window2(driver)`
|
|||
|
4) В файле есть закомментированный цикл `for image in png_elements...`, который используется для определения конкретных размеров указанных изображений (по высоте и ширине)
|
|||
|
|
|||
|
|
|||
|
## Сценарий 2:
|
|||
|
[Перейти к sc2.py](sc2.py) \
|
|||
|
Были импортированы следующие библиотеки и модули:
|
|||
|
- selenium,
|
|||
|
- selenium.webdriver:
|
|||
|
- By,
|
|||
|
- expected_conditions,
|
|||
|
- WebDriverWait,
|
|||
|
- Service,
|
|||
|
- http.client
|
|||
|
- requests
|
|||
|
- pytest
|
|||
|
|
|||
|
1) С помощью функции `browser()` создаем фикстуру для браузера
|
|||
|
2) Основной код лежит в функции `test_two()`
|
|||
|
3) Для скипа всплывающего окна о куки следующая функция `close_pop_up_m(driver)`
|
|||
|
4) Функция `region_by_ip()` определяет Ip пользователя, который запускает код и выводит регион этого пользователя. ВВиду того, что в задании не указано точно, как конкретно нужно проверять регион (только его наличие, правильность определения и прочее) было решено оставить конструкцию:
|
|||
|
```python
|
|||
|
print ("Сравни регионы: - {}, согласно сайту: {}".format(reg, txt_cnt))
|
|||
|
```
|
|||
|
чтобы через запуск
|
|||
|
```bash
|
|||
|
pytest -s sc2.py
|
|||
|
```
|
|||
|
можно было сравнить регионы.
|
|||
|
Также начала разрабатывать возможные варианты для сранения текущего региона с тем, что есть на странице, но посмотрев вкладку "Сети" в панели разработчика (Devtools) выяснилось, что определяются не все регионы, а только конкретные в России, а по умолчанию стоит регион "Москва". Эти данные занесены в отдел [region/data.txt](region/data.txt)
|
|||
|
Что не вышло:
|
|||
|
- Транслитить и сравнивать мой регион и тот что на сайте, т.к. на сайте используются сокращения регионов
|
|||
|
- Определить мой регион сразу на русском языке, не используя виртуальное окружение
|