1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144
|
from selenium import webdriver
from pyvirtualdisplay import Display
from selenium.webdriver.chrome.options import Options
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
import selenium.common.exceptions
from selenium.common.exceptions import NoSuchElementException,TimeoutException
from selenium.webdriver.remote.webelement import WebElement
import time
import sys,os
sys.excepthook = sys.__excepthook__
print('sys.argv[0] =', sys.argv[0])
pathname = os.path.dirname(sys.argv[0])
print('path =', pathname)
print('full path =', os.path.abspath(pathname))
NB_REPETITIONS=2
TIME_WAIT_ELEMENT_CHANGE_WEBPAGE=10
#nom temporaire fichier résultat
fileNameResult="temp.txt"
isConnected=False
isAlreadyConnected=False
display = Display(visible=0, size=(1024, 768))
def send_keys(el: WebElement, keys: str):
for i in range(len(keys)):
el.send_keys(keys[i])
def initialize_Driver():
opts = Options()
if sys.argv[5] == 'PROD' :
opts.add_argument("--no-sandbox")
opts.add_argument("--disable-setuid-sandbox")
display.start()
driver = webdriver.Chrome(options=opts)
else:
opts.binary_location="/usr/bin/chromium-browser" #path to chromium binary
opts.add_argument("--headless")
opts.add_experimental_option("excludeSwitches", ["enable-automation"])
opts.add_experimental_option('useAutomationExtension', False)
opts.add_argument("--disable-blink-features")
opts.add_argument('--disable-infobars')
opts.add_argument("--disable-blink-features=AutomationControlled")
opts.add_argument("--disable-extensions")
driver = webdriver.Chrome(os.path.abspath(pathname)+"/Drivers_Browser/"+sys.argv[6]+"/chromedriver", options=opts)
driver.delete_all_cookies()
driver.maximize_window()
driver.set_page_load_timeout(60)
return driver;
if len(sys.argv) < 6:
print ("Veuillez saisir en 1er parametre du script, le nom de l'operateur")
print ("Veuillez saisir en 2ieme/3ieme parametre du script, le login/password")
print ("Veuillez saisir en 4ieme parametre du script, le nom du fichier contenant le résultat")
print ("Veuillez saisir en 5ieme parametre du script, l'environnement d'execution")
print ("Veuillez saisir en 6ieme parametre du script, le nom du dossier du driver web chrome")
else:
sys.argv[1]
fileNameResult=sys.argv[4]
loginEnter=sys.argv[2]
passwordEnter=sys.argv[3]
print(fileNameResult)
if sys.argv[1] == 'sfr' :
print ("Operateur SFR")
for x in range(NB_REPETITIONS):
driver=initialize_Driver()
driver.get("https://hotspot.wifi.sfr.fr/")
print ("l'adresse courante lancé est: ",driver.current_url)
print ("tentative N: ",x)
try:
element = WebDriverWait(driver, TIME_WAIT_ELEMENT_CHANGE_WEBPAGE).until(EC.presence_of_element_located((By.ID, "login")))
element = WebDriverWait(driver, TIME_WAIT_ELEMENT_CHANGE_WEBPAGE).until(EC.presence_of_element_located((By.ID, "password")))
elementLogin = driver.find_element_by_xpath("//input[@id='login']")
print ("login /"+ loginEnter+"/"+passwordEnter+"/" )
print ("length: ",len(loginEnter),"/",len(passwordEnter) )
#elementLogin.send_keys(loginEnter)
elementLogin.clear()
send_keys(elementLogin,loginEnter)
time.sleep(2)
elementPassword = driver.find_element_by_xpath("//input[@id='password']")
#elementPassword.send_keys(passwordEnter)
elementPassword.clear()
send_keys(elementPassword,passwordEnter)
time.sleep(2)
time.sleep(2)
#elementCGU
driver.find_element_by_xpath("//input[@id='conditions']").click()
time.sleep(5)
driver.find_element_by_xpath("//input[@name='connexion']").click()
# Case Failed Authentification
element=WebDriverWait(driver,10).until(
EC.presence_of_element_located((By.ID, "fermerBox"))
)
driver.find_element_by_xpath("//div[@class='sprite-fermer']").click()
#time.sleep(2)
print("FIN DU PROCESSUS NORMAL")
except Exception:
print ("OH an exception")
try:
print ("Verification du Timer si presence")
element=WebDriverWait(driver,15).until(
EC.presence_of_element_located((By.ID, "theTimer")))
element=WebDriverWait(driver,10).until(EC.text_to_be_present_in_element((By.ID, "theTimer"), "5 secondes"))
element=WebDriverWait(driver,10).until(EC.text_to_be_present_in_element((By.ID, "theTimer"), "3 secondes"))
except NoSuchElementException:
print ("element Timer non trouve")
except TimeoutException:
print("TimeOut dépassé pour trouver l'élément theTimer")
else:
print (driver.current_url)
driver.quit()
print("Connexion reussi --- FERMETURE DU BROWSER")
#driver.close()
break
else:
print ("no exception")
finally:
driver.quit()
print("FERMETURE DU BROWSER")
print("finished process operateur: ",x) |
Partager