Forum Testowania i AutomatyzacjiKategoria: Pytanieproblem z uruchomieniem testów na różnych przeglądarkach po modyfikacji
AvatarŁukasz Błaszkowski zapytał 3 miesiące temu

Witam,
zrobiłem testy na różnych przeglądarkach, ale chciałem zmodyfikować kod, ponieważ kod powtarza się w warunku:

Jak mam taki kod:
https://github.com/lblaszkowski/MercuryTours_WSB/tree/430716ba2d791ba4e930f03dc6808d4bbe3971bc

View post on imgur.com


to wszystkie testy działają poprawnie, ale kod powtarza się w warunku. Tu jest screen przed modyfikacją pliku application.
I chce go zmienić. W tej wersji nie działa uruchomienie testów np. login.py. To co zmodyfikowałem, to kod application
https://github.com/lblaszkowski/MercuryTours_WSB/tree/e42641acd1a0597d4a7ad503fc069e9687f4a83d

View post on imgur.com


 
tu jest błąd komunikatu:

View post on imgur.com


plus w pliku.txt
http://wyslijto.tk/download/l7f7c8o4mt09cgwzyva6dt0qi
 
Co jest nie tak, że test nie działa w tej nowszej wersji ?
 

4 odpowiedzi
Krzysiek KijasKrzysiek Kijas Personel odpowiedział 3 miesiące temu

Hej,
W przypadku ostatniego błędu

    def __init__(self):
        self.bro = Browser_pages_url()
>       self.driver.get('http://newtours.demoaut.com/')
E       AttributeError: 'Application_page' object has no attribute 'driver'

..\Application\application.py:9: AttributeError

problem leży właśnie w application.py – brakuje tam zmiennej driver w self 😉 Sam driver jest inicjalizowany w browser.py ale dopiero po wywołaniu metody browser_url_pages(). Dodatkowo self z Browser_pages_url to nie jest self z Application_page, dlatego odwołanie do zmiennej driver musi nastąpić przez self.bro:

class Application_page:

    def __init__(self):
        self.bro = Browser_pages_url()
        self.bro.browser_url_pages()
        self.bro.driver.get('http://newtours.demoaut.com/')
        self.bro.driver.maximize_window()
        print("-----------------")
        print("Run Started at :" + str(datetime.datetime.now()))

I analogicznie będzie w metodzie destroy 😉

Pozdrawiam,

AvatarŁukasz Błaszkowski odpowiedział 2 miesiące temu

Nie do końca działa. Jak uruchamiam pojedynczy test, to wyskakuje mi komunikat

View post on imgur.com


że są problemy z driver w pliku application class Application_page.
Tu jest plik.txt:
http://wyslijto.tk/download/32617eplm0t2qsijhdofczltz
Tu jest aktualne repo:
https://github.com/lblaszkowski/MercuryTours_WSB/tree/44612944e4469e801d5fc51553231511e27620ce
 
 

Krzysiek KijasKrzysiek Kijas Personel odpowiedział 2 miesiące temu

To również jest z tym związane 😉 Tzn. z racji że driver jest w obiekcie bro, a obiekt bro jest w class Application_page to z innych miejsc trzeba “dostawać się” do niego poprzez app.bro.driver. W testach to będzie self.app.bro.driver z racji że app jest w self.

Tu pojawia się pytanie czy nie warto może uprościć całego łańcucha dostępu do obiektu drivera? 😉 Np. aby Browser_pages_url zwracał obiekt driver, który zamiast w self.bro.driver byłby jak poprzednio w self.driver w class Application_page.

Przemek BarańskiPrzemek Barański Personel odpowiedział 2 miesiące temu

Hej Łukasz
Wybacz późną odp. Krzysiek jest obecnie na urlopie i on prowadzi twoją sprawę. Jak się ogarnę z moich tasków to postaram się rzucić okiem na ten kod 😀

AvatarŁukasz Błaszkowski odpowiedział 2 miesiące temu

Ad.1 . Zrobiłem w teście login.py, ale nadal nie działa. Chyba, że źle zrozumiałem

https://imgur.com/a/pNKlWIR

Tu jest aktualne repo:

https://github.com/lblaszkowski/MercuryTours_WSB/tree/f78af971b3510705a8b98caca43c402abb3525a1

Ad.2. Jak bym miał, to zrobić ?

Przemek BarańskiPrzemek Barański Personel odpowiedział 2 miesiące temu

Odpowiadając na ostatni błąd: https://imgur.com/a/pNKlWIR – problemy mamy w pliku https://github.com/lblaszkowski/MercuryTours_WSB/blob/master/PageObjectModel/Test/login.py

Ta linia nie jest potrzebna: self.app.bro.driver() gdyż driver już został zainicjalizowany poprzez self.app = Application_page() i wszystko gra w setUp().

Następnie ta linia: driver = self.app.driver jest odrobinę niepoprawna gdyż driver jest dostępny tak driver = self.app.bro.driver

Powinno pomóc 😀

AvatarŁukasz Błaszkowski odpowiedział 2 miesiące temu

mam pytanie. Jak zrobić opcje 2, która powiedział Krzysiek K ?

AvatarŁukasz Błaszkowski odpowiedział 2 miesiące temu

ok. działa 🙂 dzięki za pomoc. 🙂