Typoja materiaalissa

Tee korjausehdotus editoimalla tätä tiedostoa GitHubissa.

Kurssin selainta käyttävät Robot-testit tehdään Robot Frameworkin Browser-kirjastolla, joka perustuu Playwright-työkaluun. Erillisiä selainajureita ei tarvita.

Asennus

Tehtäväpohjien riippuvuuksina ovat paketit robotframework-browser ja robotframework-browser-batteries. Jälkimmäinen sisältää kirjaston tarvitseman Node.js-ajoympäristön, joten Node.js:ää ei tarvitse asentaa erikseen. Riippuvuudet asentuvat normaaliin tapaan komennolla uv sync.

Testien käyttämä selain asennetaan projektin hakemistossa komennolla

uv run rfbrowser install chromium

Selain asentuu projektin virtuaaliympäristön sisälle. Asennus on siis tehtävä jokaiselle projektille erikseen, ja uudelleen, jos hakemisto .venv poistetaan tai Browser-kirjasto päivitetään.

Testit käyttävät Playwrightin omaa Chromium-selainta, eivät koneelle mahdollisesti asennettua Chromea. Halutessasi voit käyttää myös Firefoxia tai WebKitiä (Safarin selainmoottori):

uv run rfbrowser install firefox
robot --variable BROWSER:firefox src/tests

Huom: komentoa rfbrowser init ei tule käyttää, sillä se on tarkoitettu tilanteeseen, jossa Node.js on asennettu erikseen ilman robotframework-browser-batteries-pakettia.

Linux ja WSL

Linuxilla (ja Windowsin WSL:ssä) selain saattaa tarvita käyttöjärjestelmän kirjastoja, joita koneelta ei löydy. Ne saa asennettua samalla komennolla lisäämällä valitsimen --with-deps:

uv run rfbrowser install --with-deps chromium

Komento asentaa kirjastot käyttöjärjestelmän pakettienhallinnalla, joten se kysyy pääkäyttäjän salasanaa.

Windows 11:n WSL2 osaa näyttää myös graafisia sovelluksia, joten testejä suorittavan selaimen ikkunan pitäisi näkyä. Jos ikkuna ei aukea, suorita testit headless-tilassa, ks. viikon 3 tehtävä 4.

Mahdollisia ongelmia

Selainta ei ole asennettu

Seuraava virheilmoitus kertoo, että testien käyttämää selainta ei ole asennettu:

Suite setup failed:
Error: browserType.launch: Executable doesn't exist at .../chromium_headless_shell-1243/chrome-headless-shell-mac-arm64/chrome-headless-shell
╔════════════════════════════════════════════════════════════╗
║ Looks like Playwright was just installed or updated.       ║
║ Please run the following command to download new browsers: ║
║                                                            ║
║     npx playwright install                                 ║
║                                                            ║
║ <3 Playwright Team                                         ║
╚════════════════════════════════════════════════════════════╝

Virheilmoituksen ehdottamaa npx-komentoa ei tarvita, vaan selain asennetaan komennolla uv run rfbrowser install chromium.

Sovellus ei ole päällä

Seuraava virheilmoitus kertoo siitä, että suoritat testejä ilman että sovellus on päällä:

At start the counter is zero                                          | FAIL |
Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:5001/
Call log:
  - navigating to "http://localhost:5001/", waiting until "load"

Testit siis olettavat, että sovellus on käynnissä. Käynnistä siis sovellus yhteen terminaaliin, avaa uusi ja suorita testit siellä.

Testi epäonnistuu, vaikka sovellus toimii

Jos testi epäonnistuu, vaikka sovellus toimii selaimella testattaessa oikein, tarkista testien suorituksen jälkeen syntyvä raportti log.html. Browser-kirjasto ottaa epäonnistumisen hetkellä kuvakaappauksen, joka näkyy raportissa ja tallentuu hakemistoon browser/screenshot. Usein ongelma on selektorissa, joka ei löydä haluttua elementtiä. Selektoreista lisää täällä.