Opowiedz mi o pytest. Czym jest? Czym są fixture? Jak działają?
QA / QA Automation
Co się stało, dlaczego teraz szukasz pracy?
Jakie zadania poszukujesz: co chciałbyś robić, a czego nie chciałbyś robić?
Jakie masz doświadczenie z SQL?
Czym jest krotka i jakie typy danych w Pythonie są zmiennymi i niezmiennymi?
Czym jest metoda __init__ i co oznacza tworzenie obiektu?
Jak nauczyłeś się automatyzacji: samodzielnie, poprzez kursy czy dzięki specjalistycznemu wykształceniu?
""" self.fill_credentials(username, password) self.login_button.click() return Self.page def login_expecting_failure(self, username: str, password: str): """ Nieudane logowanie. Działania są takie same, ale zwracam self, ponieważ w przypadku błędu pozostajemy na tej samej stronie. Dwie oddzielne metody zamiast jednej uniwersalnej są celowo tworzone: tak, aby w teście było jasne, jaki wynik jest oczekiwany. """ self.fill_credentials(username, password) self.login_button.click() return self
Jakie podejście do lokalizowania locatorów stosujesz w Playwright i dlaczego? Co się stanie z getByLabel, jeśli ID powiązanego pola zmieni się w HTML?
Czym jest Page Object i dlaczego jest potrzebny? Co się stanie, jeśli ten wzorzec nie będzie używany?
Dlaczego metoda open zwraca self i jak jest używana w testach?
def __init__(self, page) -> None: super().__init__(page) # Pola mają normalne etykiety, więc szukam ich tak samo, jak widzi je użytkownik, # nie po id czy klasie CSS, którą projektant może zmienić w dowolnym momencie 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") # Formularz jest potrzebny, aby sprawdzić, czy nie opuściliśmy strony w testach negatywnych self.login_form = page.locator("form#login") # Komunikat flash, jest taki sam dla sukcesu i błędu 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: """
Czym różni się XPath od CSS oprócz składni i którą metodę wyszukiwania preferujesz?
Czym jest klasa BasePage i dlaczego jest potrzebna?
Czym jest metoda __init__ i dlaczego jest potrzebna?
Czym są *args i **kwargs? Jakie struktury danych tworzą?
Opowiedz krótko o sobie: ile masz doświadczenia, czym się zajmowałeś i co było najbardziej interesujące z punktu widzenia testów automatycznych?