bytes.cat

La wiki d'FP d'informàtica

Eines de l'usuari

Eines del lloc


django_test

Diferències

Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.

Enllaç a la visualització de la comparació

Ambdós costats versió prèvia Revisió prèvia
Següent revisió
Revisió prèvia
Següent revisió Ambdós costats nova versio
django_test [2024/01/03 16:18]
enric_mieza_sanchez assert title
django_test [2024/01/03 17:08]
enric_mieza_sanchez [Tests amb Selenium] headless deprecated
Línia 145: Línia 145:
  
 <WRAP tip> <WRAP tip>
-**Necessitaràs instal·lar el geckodriver de Firefox** per permetre automatitzar l'accés al navegador per part del codi. [[https://github.com/mozilla/geckodriver/releases|Pots descarregar el geckodriver aquí]]En Ubuntu es pot fer amb: +**Necessitaràs instal·lar el geckodriver de Firefox** per permetre automatitzar l'accés al navegador per part del codi (control remot)Des de fa algunes versions Firefox ja inclou per defecte el //driver//. 
-    $ sudo apt install firefox-geckodriver + 
-    +Per altra banda hem detectat que **les versions de Firefox de la botiga //snap// d'Ubuntu no funcionen bé per al //testing//**. Per tant, si utilitzes aquesta distribució caldrà eliminar el Firefox normal i després **instal·lar Firefox ESR** (Extended Support Release). Debian ja porta per defecte Firefox ESR. 
 + 
 +    $ sudo snap remove firefox 
 +    $ sudo apt install firefox-esr 
 També **cal instal·lar Selenium** al //virtualenv// del nostre projecte: També **cal instal·lar Selenium** al //virtualenv// del nostre projecte:
     (env) $ pip install selenium     (env) $ pip install selenium
Línia 153: Línia 157:
 </WRAP> </WRAP>
  
-Mostrem un exemple de com es pot connectar amb el panell /admin i fer un login. Hi hem afegit un control sobre el **mode //headless//** que ens permet córrer els tests sense mostrar el //browser//. Ens anirà bé per poder executar els tests en servidors sense interfície gràfica. +Mostrem un exemple de com es pot connectar amb el panell /admin i fer un //login//. Hi hem afegit un control sobre el **mode //headless//** que ens permet córrer els tests sense mostrar el //browser//. Ens anirà bé per poder executar els tests en servidors sense interfície gràfica. 
  
 <file python tests.py> <file python tests.py>
Línia 168: Línia 172:
         super().setUpClass()         super().setUpClass()
         opts = Options()         opts = Options()
-        opts.headless = True+        #opts.headless = True # DEPRECATED!
         cls.selenium = WebDriver(options=opts)         cls.selenium = WebDriver(options=opts)
         cls.selenium.implicitly_wait(5)         cls.selenium.implicitly_wait(5)
Línia 190: Línia 194:
         password_input.send_keys('admin123')         password_input.send_keys('admin123')
         self.selenium.find_element(By.XPATH,'//input[@value="Log in"]').click()         self.selenium.find_element(By.XPATH,'//input[@value="Log in"]').click()
- +         
 +        # comprovem que hem entrat al panell d'administració pel títol 
 +        self.assertEqual( self.selenium.title , "Site administration | Django site admin" ) 
 +        
         # Aquesta localització de l'element ens serveix també a mode de ASSERT         # Aquesta localització de l'element ens serveix també a mode de ASSERT
         # Si no localitza el link "Log out", ens donarà un NoSuchElementException         # Si no localitza el link "Log out", ens donarà un NoSuchElementException
django_test.txt · Darrera modificació: 2024/01/09 15:37 per enric_mieza_sanchez