Overslaan naar inhoud
Odoo Menu
  • Aanmelden
  • Probeer het gratis
  • Apps
    Financiën
    • Boekhouding
    • Facturatie
    • Onkosten
    • Spreadsheet (BI)
    • Documenten
    • Ondertekenen
    Verkoop
    • CRM
    • Verkoop
    • Kassasysteem winkel
    • Kassasysteem Restaurant
    • Abonnementen
    • Verhuur
    Websites
    • Websitebouwer
    • E-commerce
    • Blog
    • Forum
    • Live Chat
    • eLearning
    Bevoorradingsketen
    • Voorraad
    • Productie
    • PLM
    • Inkoop
    • Onderhoud
    • Kwaliteit
    Personeelsbeheer
    • Werknemers
    • Werving & Selectie
    • Verlof
    • Evaluaties
    • Aanbevelingen
    • Wagenpark
    Marketing
    • Social media Marketing
    • E-mailmarketing
    • SMS Marketing
    • Evenementen
    • Marketingautomatisering
    • Enquêtes
    Diensten
    • Project
    • Urenstaten
    • Buitendienst
    • Helpdesk
    • Planning
    • Afspraken
    Productiviteit
    • Chat
    • Goedkeuringen
    • IoT
    • VoIP
    • Kennis
    • WhatsApp
    Apps van derden Odoo Studio Odoo Cloud Platform
  • Bedrijfstakken
    Detailhandel
    • Boekhandel
    • kledingwinkel
    • Meubelzaak
    • Supermarkt
    • Bouwmarkt
    • Speelgoedwinkel
    Food & Hospitality
    • Bar en Pub
    • Restaurant
    • Fastfood
    • Gastenverblijf
    • Drankenhandelaar
    • Hotel
    Vastgoed
    • Makelaarskantoor
    • Architectenbureau
    • Bouw
    • Vastgoedbeheer
    • Tuinieren
    • Vereniging van eigenaren
    Consulting
    • Accountantskantoor
    • Odoo Partner
    • Marketingbureau
    • Advocatenkantoor
    • Talentenwerving
    • Audit & Certificering
    Productie
    • Textiel
    • Metaal
    • Meubels
    • Eten
    • Brewery
    • Relatiegeschenken
    Gezondheid & Fitness
    • Sportclub
    • Opticien
    • Fitnesscentrum
    • Wellness-medewerkers
    • Apotheek
    • Kapper
    Trades
    • Klusjesman
    • IT-hardware & support
    • Zonne-energiesystemen
    • Schoenmaker
    • Schoonmaakdiensten
    • HVAC-diensten
    Andere
    • Non-profitorganisatie
    • Milieuagentschap
    • Verhuur van Billboards
    • Fotograaf
    • Fietsleasing
    • Softwareverkoper
    Browse all Industries
  • Community
    Leren
    • Tutorials
    • Documentatie
    • Certificeringen
    • Training
    • Blog
    • Podcast
    Versterk het onderwijs
    • Onderwijs- programma
    • Scale Up! Business Game
    • Bezoek Odoo
    Download de Software
    • Downloaden
    • Vergelijk edities
    • Releases
    Werk samen
    • Github
    • Forum
    • Evenementen
    • Vertalingen
    • Word een Partner
    • Services for Partners
    • Registreer je accountantskantoor
    Diensten
    • Vind een partner
    • Vind een boekhouder
    • Een adviseur ontmoeten
    • Implementatiediensten
    • Klantreferenties
    • Ondersteuning
    • Upgrades
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +1 (650) 691-3277
    Vraag een demo aan
  • Prijzen
  • Help

Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:

  • CRM
  • e-Commerce
  • Boekhouding
  • Voorraad
  • PoS
  • Project
  • MRP
All apps
Je moet geregistreerd zijn om te kunnen communiceren met de community.
Alle posts Personen Badges
Labels (Bekijk alle)
odoo accounting v14 pos v15
Over dit forum
Je moet geregistreerd zijn om te kunnen communiceren met de community.
Alle posts Personen Badges
Labels (Bekijk alle)
odoo accounting v14 pos v15
Over dit forum
Help

Trying to avoid Timeouts testing my odoo app with Playwright

Inschrijven

Ontvang een bericht wanneer er activiteit is op deze post

Deze vraag is gerapporteerd
testtestingodooasync
2210 Weergaven
Avatar
Mathieu Le Masson

Hello, I'm having some troubles while testing my odoo app with playright.

I often find playwright clicking too fast for elements to be activated already, or to modify a field, then try to do something else immediatly, only to see that something be canceled by an "actualisation" of the page, caused by the previous field modification.


It seems that I am not allowed to post images, so i have to describe the situation with words.


For an exemple of the first case, i choose the value "Assurance axa" in a dropdown, and i must then empty the field, but if i do it like this.

await odoo.try_to_select_x2m("Assurance axa", "source_service_line_id")
await odoo.empty_field("source_service_line_id")

It chooses the value, then empty the field immediately, but then the field gets 'actualized', and the field retakes the value  "Assurance axa".

So far i make the test pass like this 

await odoo.try_to_select_x2m("Assurance axa", "source_service_line_id")
await odoo.wait_for_http_response_with_url_substring("lease4.amendment.service_line") // Need to be addressed differently
await odoo.empty_field("source_service_line_id")
async wait_for_http_response_with_url_substring(url_substring) {
await this.page.waitForResponse(response => response.url().includes(url_substring));
await this.page.waitForTimeout(500) // To let the page update after receiving its response.
}

but as you can see, it is not even enough to wait for the associated http response, i have to add a timeout, and this is not viable long-term.

For my second exemple, first i have my login function

async login(username: string) {
let password = await this.get_password_from_vault(username)

await this.page.goto('***********************');
await this.page.waitForResponse(response => response.url().includes('web.assets_frontend_lazy.js'))
await this.page.getByLabel('Your Email').fill(username)
await this.page.getByLabel('Password').fill(password)
await this.page.getByRole('button', {name: 'Confirm'}).click()
await this.page.waitForURL(/active_id=mail\.box_inbox/)
}

where i have to wait for the page to be hydrated ( i think that it is what the lazy.js http response indicates ) before clicking on the 'Confirm' button.

I have been told by a more experienced colleague to avoid waitForResponse as much as possible, and for obvious reasons not to have any waitForTimeout, but i don't see how to handle these situations differently.

For my second problem, i have this code

await odoo.navigate("CRM", "Sales", "My Pipeline")
await odoo.wait_for_http_response_with_url_substring("crm.lead")
await odoo.click_on_button_by_accessible_name_or_data_name('Create')

that only works thanks to the timeout, if i try to do 

await odoo.navigate("CRM", "Sales", "My Pipeline")
await odoo.wait_for_url("model=crm.lead&view_type=kanban")
await odoo.click_on_button_by_accessible_name_or_data_name('Create')

then playwright clicks on the button, but nothing happens, and yet i don't see any javascript in the http requests that could indicates a lazy loading/hydration of the button, but the button works fine if i wait 500 ms.

I'm quite confused about why this button isn't "activated", but i have to wait a bit before being able to use it.

Anyways, i would appreciate any idea on how to handle these situations without using this waitForResponse function.

Thank you for reading all this, have a good day.

0
Avatar
Annuleer
Geniet je van het gesprek? Blijf niet alleen lezen, doe ook mee!

Maak vandaag nog een account aan om te profiteren van exclusieve functies en deel uit te maken van onze geweldige community!

Aanmelden
Gerelateerde posts Antwoorden Weergaven Activiteit
Why native test fails? Opgelost
test testing
Avatar
Avatar
2
jun. 20
7341
Override test
test testing
Avatar
0
nov. 19
4999
upload file in field (to unitest)
test odoo
Avatar
0
mei 19
3966
Test execution
test testing
Avatar
Avatar
Avatar
2
mrt. 15
5120
How To Install Odoo from Github on Ubuntu 14.04 For Testing Purposes Only (ie. not for production) Opgelost
v8 installation test git testing odoo
Avatar
Avatar
Avatar
Avatar
Avatar
70
nov. 23
183309
Community
  • Tutorials
  • Documentatie
  • Forum
Open Source
  • Downloaden
  • Github
  • Runbot
  • Vertalingen
Diensten
  • Odoo.sh Hosting
  • Ondersteuning
  • Upgrade
  • Gepersonaliseerde ontwikkelingen
  • Onderwijs
  • Vind een boekhouder
  • Vind een partner
  • Word een Partner
Over ons
  • Ons bedrijf
  • Merkelementen
  • Neem contact met ons op
  • Vacatures
  • Evenementen
  • Podcast
  • Blog
  • Klanten
  • Juridisch • Privacy
  • Beveiliging
الْعَرَبيّة Català 简体中文 繁體中文 (台灣) Čeština Dansk Nederlands English Suomi Français Deutsch हिंदी Bahasa Indonesia Italiano 日本語 한국어 (KR) Lietuvių kalba Język polski Português (BR) română русский язык Slovenský jazyk slovenščina Español (América Latina) Español ภาษาไทย Türkçe українська Tiếng Việt

Odoo is een suite van open source zakelijke apps die aan al je bedrijfsbehoeften voldoet: CRM, E-commerce, boekhouding, inventaris, kassasysteem, projectbeheer, enz.

Odoo's unieke waardepropositie is om tegelijkertijd zeer gebruiksvriendelijk en volledig geïntegreerd te zijn.

Website made with

Odoo Experience on YouTube

1. Use the live chat to ask your questions.
2. The operator answers within a few minutes.

Live support on Youtube
Watch now