Cosa è successo, perché stai cercando lavoro ora?
QA / QA Automation
Quali compiti stai cercando: cosa ti piacerebbe fare e cosa non vorresti fare?
Perché il metodo open restituisce self e come viene usato nei test?
Come hai imparato l'automazione: autonomamente, attraverso corsi o grazie a un'educazione specializzata?
Qual è la tua esperienza con SQL?
Cos'è il metodo __init__ e cosa si intende per creare un oggetto?
Cos'è una tupla e quali tipi di dati in Python sono mutabili e immutabili?
Quale approccio usi per individuare i locator in Playwright e perché? Cosa succederà a getByLabel se l'ID del campo correlato cambia nell'HTML?
Perché il metodo open restituisce self e come viene usato nei test?
""" self.fill_credentials(username, password) self.login_button.click() return Self.page def login_expecting_failure(self, username: str, password: str): """ Accesso non riuscito. Le azioni sono le stesse, ma ritorno self, perché in caso di errore rimaniamo sulla stessa pagina. Due metodi separati invece di uno universale sono fatti intenzionalmente: così nel test è chiaro quale risultato ci si aspetta. """ self.fill_credentials(username, password) self.login_button.click() return self
def __init__(self, page) -> None: super().__init__(page) # I campi hanno etichette normali, quindi li cerco nello stesso modo in cui li vede un utente, # non per id o classe CSS, che un designer può rinominare in qualsiasi momento self.username_input = page.get_by_label("Username") self.password_input = page.get_by_label("Password") self.login_button = page.get_by_role("button", name="Login") # Il modulo è necessario per verificare che non siamo passati ad un'altra pagina in test negativi self.login_form = page.locator("form#login") # Il messaggio flash, è lo stesso per successo e errore self.flash_message = page.locator("#flash") def fill_credentials(self, username: str, password: str): self.username_input.fill(username) self.password_input.fill(password) return self def login(self, username: str, password: str) -> SecurePage: """
Cos'è la classe BasePage e perché è necessaria?
Cos'è un Page Object e perché è necessario? Cosa succederà se questo pattern non viene usato?
Cosa sono *args e **kwargs? Quali strutture dati formano?
Cos'è il metodo __init__ e perché è necessario?
Parlaci brevemente di te: quanta esperienza hai, cosa hai fatto e cosa è stato più interessante dal punto di vista dei test automatizzati?
In che modo XPath si differisce da CSS oltre alla sintassi e quale metodo di ricerca preferisci?