Witam,
mam problem zaznaczeniem elementu z listy rozwijanej. Jak uruchomiam testy, to wyskakuje mi komunikat w konsoli:
FAILED (errors=1)
Error
Traceback (most recent call last):
File “C:\Python37-32\lib\unittest\case.py”, line 59, in testPartExecutor
yield
File “C:\Python37-32\lib\unittest\case.py”, line 615, in run
testMethod()
File “C:\MercuryTours_WSB\PageObjectModel\Test\rezerwacja_lotu.py”, line 45, in test_Rezerwacja_lotu
ReservationFlight.select_pass0meal(“Hindu”)
File “C:\MercuryTours_WSB\PageObjectModel\Pages\reservationFlightPage.py”, line 77, in select_pass0meal
select = Select(self.driver.find_element_by_name(Locators.select_field_pass0meal))
File “C:\Python37-32\lib\site-packages\selenium\webdriver\remote\webdriver.py”, line 496, in find_element_by_name
return self.find_element(by=By.NAME, value=name)
File “C:\Python37-32\lib\site-packages\selenium\webdriver\remote\webdriver.py”, line 978, in find_element
‘value’: value})[‘value’]File “C:\Python37-32\lib\site-packages\selenium\webdriver\remote\webdriver.py”, line 321, in execute
self.error_handler.check_response(response)
File “C:\Python37-32\lib\site-packages\selenium\webdriver\remote\errorhandler.py”, line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element: [name=”//*[@name=’pass.0.meal’]”]
Próbowałem zrobić na sleep lub wait, ale nadal tak samo. Co może być nie tak ?
Tu jest komunikat:
tu jest element z listy rozwijanej
Testowana strona:
http://newtours.demoaut.com/mercurysignon.php
Hej,
Jak wygląda Twój test? Dropdown z wartością dla Meal jest dostępny jedynie dla pewnych rodzajów klas przelotu (Service Class – tylko Business i First class, które definiuje się w pierwszym kroku/stronie szukania przelotów). Dla tych dwóch klas bez problemu można pobrać element typu dropdown za pomocą XPatha 😉
Pozdrawiam,
Z kodem od razu lepiej 😀
W metodzie:
def select_pass0meal(self, pass0meal): select = Select(self.driver.find_element_by_name(Locators.select_field_pass0meal)) select.select_by_visible_text(pass0meal)
używana jest metoda find_element_by_name
, natomiast pod Locators.select_field_pass0meal
znajduje się wyrazenie XPath 😉
to jest strona testowa:
https://github.com/lblaszkowski/MercuryTours_WSB/commits/master
Na niej można uczyć się testów automatycznych.Ta strona jest często wykorzystywana w kursach lub szkoleniach itp.
Scenariusz był robiony krok po kroku manualnie i kończy się powodzeniem.. tu jest pierwszy commit tego testu
https://github.com/lblaszkowski/MercuryTours_WSB/tree/30d759fea7485145407e3cc7673c69b291845e2c
i tam działa
Myślę, że możesz pod warunkiem, że nie ma tam oczywiście jakiś wrażliwych danych (haseł), chociaż z tego co widzę to chyba strona testowa 🙂 Aczkolwiek w Economy class nie występuje później dropdown z wartością dla Meal dlatego to może być problemem. Pytanie czy przejście tego scenariusza krok-po-kroku tak jak został zautomatyzowany kończy się powodzeniem? 😉
Przed testem pole Service Class jest ustawione na Economy class.Tu jest screen
po teście. Jest ustawione na Business class
kod testu:
tu są metody:
a tu lokatory:
ps. mogę podesłać repozytorium z kodem ?
Hmmm niewiele niestety jestem w stanie tam dojrzeć 🙁 W tym teście, w którym występuje ten błąd z dropdownem, to jaka jest ustawiona wartość pola Service Class?
Tak wygląda mój test w pierwszym kroku: