73 lines
2.3 KiB
Python
73 lines
2.3 KiB
Python
|
||
import pytest
|
||
from selenium import webdriver
|
||
from selenium.webdriver.common.by import By
|
||
from selenium.webdriver.support import expected_conditions as EC
|
||
from selenium.webdriver.support.wait import WebDriverWait
|
||
from selenium.webdriver.firefox.service import Service
|
||
import http.client
|
||
import requests
|
||
|
||
@pytest.fixture
|
||
def browser():
|
||
driver = webdriver.Firefox(service=Service(r'/home/karasik/git/test/geckodriver'))
|
||
yield driver
|
||
driver.quit()
|
||
|
||
def test_two(browser):
|
||
browser.get('https://sbis.ru')
|
||
browser.find_element(By.LINK_TEXT, "Контакты").click()
|
||
|
||
close_pop_up_m(browser)
|
||
|
||
el = browser.find_element(By.CLASS_NAME, "sbis_ru-Region-Chooser")
|
||
assert el, ("Регион не отображается")
|
||
txt_cnt = el.text
|
||
reg = region_by_ip()
|
||
print ("Сравни регионы: - {}, согласно сайту: {}".format(reg, txt_cnt))
|
||
|
||
assert browser.find_element(By.CSS_SELECTOR, "div.controls-Tree__item:nth-child(2)"),("Партнеры не отображаются")
|
||
|
||
try:
|
||
browser.find_element(By.CLASS_NAME, "sbis_ru-Region-Chooser").click()
|
||
botton_clicked= browser.find_element(By.CSS_SELECTOR, 'span[title="Камчатский край"]').click()
|
||
|
||
except:
|
||
assert ("Не прожимается кнопка")
|
||
|
||
assert browser.find_element(By.CLASS_NAME, "sbis_ru-Region-Chooser"), ("Регион не отображается")
|
||
assert browser. find_element(By.CSS_SELECTOR, "div.controls-Tree__item:nth-child(2)"), ("Партнеры не отображаются")
|
||
|
||
def close_pop_up_m(driver):
|
||
banner_element = WebDriverWait(driver,10).until(
|
||
EC.visibility_of_element_located((By.CLASS_NAME, "sbis_ru-CookieAgreement__close"))
|
||
)
|
||
banner_element.click()
|
||
|
||
def region_by_ip():
|
||
conn = http.client.HTTPConnection("ifconfig.me")
|
||
conn.request("GET", "/ip")
|
||
ip = conn.getresponse().read()
|
||
fixed = ip.decode("utf-8").strip()
|
||
|
||
def get_user_region(ip):
|
||
try:
|
||
response = requests.get(f"https://ipinfo.io/{ip}/json?lang=ru")
|
||
data = response.json()
|
||
return data.get("region")
|
||
except Exception as e:
|
||
print(f"Произошла ошибка: {str(e)}")
|
||
return None
|
||
|
||
user_region = get_user_region(fixed)
|
||
return {"user_region": user_region}
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|