-
Notifications
You must be signed in to change notification settings - Fork 0
selenium python
stachulemko edited this page Nov 16, 2023
·
4 revisions
from telnetlib import STATUS
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.select import Select
import time
import random
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.edge.service import Service
def register_and_check_email_availability(emails):
driver = webdriver.Chrome()
"""EdgeService = Service(
r"C:\\tools\\msedgedriver.exe")
driver = webdriver.Edge(service=EdgeService)"""
driver.get("https://1login.wp.pl/rejestracja?client_id=o2_poczta_o2_pl_nh&flow=registration&login_challenge=CkYKJDExZTJkN2EyYjgxOGU4Yjk4NDQyNmYyYjhmMDhkMzRiOGI4ZRCy59SqBhoYChJvMl9wb2N6dGFfbzJfcGxfbmgSAnYxEiC4M9tdpJM38y7xcdq5tQf5H9DJoPa6mwYHtKXbdr6N9Q®istrationFlow=newForced®istrationBrand=o2")
# Wprowadź dane rejestracji (zakładam, że to jest przykład)
driver.find_element(By.NAME, 'name').send_keys("Imie")
driver.find_element(By.NAME, "lastName").send_keys("Nazwisko")
driver.find_element(By.NAME, "sex").send_keys("M")
driver.find_element(By.ID, "date").send_keys("6")
select_month = driver.find_element(By.ID, "month")
select = Select(select_month)
select.select_by_value('2')
driver.find_element(By.ID, "year").send_keys("1940")
# Wprowadź e-mail w polu rejestracji
driver.find_element(By.ID, "login").send_keys(emails[0])
# Kliknij przycisk "Zarejestruj się"
time.sleep(8)
# element = WebDriverWait(driver, 10).until(
# EC.element_to_be_clickable((By.XPATH, '//button[text()="Dalej"]'))
# )
# while not driver.find_element(By.XPATH, '//button[text()="Dalej"]').():
# print("czkamsd")
# time.sleep(1)
""" while True:
is_clicable = False
try:
driver.find_element(By.XPATH, '//button[text()="Dalej"]').click()
is_clicable = True
except WebDriverException:
print("Element is not clickable")
if is_clicable:
break """
# driver.find_element(
# By.CSS_SELECTOR, "sc-bcXHqe Buttons__Button-sc-g2fyk2-0 iGblCX gwugjh").click()
# Sprawdź, czy pojawi się informacja o błędzie rejestracji lub o dostępności adresu e-mail
# error_message = driver.find_element(
# By.XPATH, '//div[text()="Podany login jest już zajęty"')
# driver.find_element(By.XPATH, "//*[text()='Podany login jest już zajęty']")
# driver.find_element(
# By.CLASS_NAME, "sc-bcXHqe ErrorContainer-sc-1hxvmp0-0 bHXXMt kAINnj NewEmailUserDataStep___StyledCustomErrorMessage-sc-nhf5cz-1 gfMenV")
time.sleep(8)
x = driver.find_element(
By.XPATH, "//div[@class='sc-bcXHqe ErrorContainer-sc-1hxvmp0-0 bHXXMt kAINnj NewEmailUserDataStep___StyledCustomErrorMessage-sc-nhf5cz-1 gfMenV']")
print(x.tag_name)
print(x.text)
for email in emails[1:]:
print(f"wstawiamy: {email}")
driver.find_element(By.ID, "login").send_keys("")
driver.find_element(By.ID, "login").clear()
driver.find_element(By.ID, "login").send_keys(Keys.CONTROL + "a")
driver.find_element(By.ID, "login").send_keys(Keys.DELETE)
#driver.refresh(By.ID, "login")
# WebDriverWait(driver, 10).until(
# EC.text_to_be_present_in_element_value((By.ID, "login"), ""))
#print("czekamy na wyczyszczenie loginu ")
# WebDriverWait(driver, 10).until(
# EC.staleness_of(driver.find_element(By.ID, "login")))
print(f'login:{driver.find_element(By.ID, "login").text}')
time.sleep(random.randint(1, 3))
driver.find_element(By.ID, "login").send_keys(email)
#print(f'login:{driver.find_element(By.ID, "login").text}')
time.sleep(1)
x = driver.find_element(
By.XPATH, "//div[@class='sc-bcXHqe ErrorContainer-sc-1hxvmp0-0 bHXXMt kAINnj NewEmailUserDataStep___StyledCustomErrorMessage-sc-nhf5cz-1 gfMenV']")
# print(x)
print(x.text)
# if "nie istnieje" in error_message.text:
# return False # Adres e-mail nie istnieje
# else:
# return True # Adres e-mail istnieje
email_to_check = ["anna", "kowal", "dadasdfgfasfafda", "akepka"]
register_and_check_email_availability(email_to_check)