selenium WebDriver

selenium WebDriver
CH
  • Rejestracja:ponad 10 lat
  • Ostatnio:ponad 5 lat
  • Postów:21
0

Witam, piszę testy do strony internetowej w Javie z wykorzystaniem biblioteki selenium. I mam problem, chciałbym wykonywać kilkanaście/dziesiąt testów jednocześnie. Mam wszystko ładnie pięknie zrobione, ale strony otwierają się w nowych oknach co jest nieco uciążliwe do obsługi. Czy jest sposób, żeby testy otwierały się w nowych kartach?
Sposoby z google nie przechodzą - wywala się błąd, ponieważ mam kilka różnych driverów (muszą się wykonywać jednocześnie - nie wiem jak to zrobić za pomocą jednego drivera).
A więc pytanie, mając coś takiego:

Kopiuj
 
WebDriver driver1 = new FirefoxDriver();
WebDriver driver2 = new FirefoxDriver();

Jak otworzyć te dwa drivery w jednym oknie, w dwóch różnych kartach?

Z góry dzięki za pomoc

1

Nie wiem jak w webdriver, ale do selenium możesz też użyć kilku innych driverów np http://phantomjs.org/
Jego zaletą jest to, że jest headless, więc wcale nie otwiera przeglądarek i dzięki temu wszystko to szybciej działa.

Z tego co napisałeś, to opcja headless wydaje się być lepsza.

Jeżeli nie potrzebujesz JS to jest też JSOUP czy htmlunit(ale tego nie polecam).

CH
Wielkie dzięki za jakąś wskazówkę, już myślałem że nic nie wymyślę. Zaraz będę próbował się z tym pobawić.
CH
  • Rejestracja:ponad 10 lat
  • Ostatnio:ponad 5 lat
  • Postów:21
0

Jednak muszę otwierać przeglądarkę, żeby "widzieć" to na bieżąco. I dalej nie wiem jak otworzyć dwa webdrivery w jednej przeglądarce. Ewentualnie czy są jakieś inne biblioteki podobne do selenium, które obsługują otwieranie nowych kart?

DI
  • Rejestracja:prawie 11 lat
  • Ostatnio:ponad 6 lat
  • Postów:103
0

a nie możesz po każdym teście zamknąć przeglądarkę? W C# jest do tego metoda Quit(), w Javie pewnie jest coś podobnego.

CH
Chodzi o to, że chce wykonywać kilka-kilkanaście testów powiedzmy jednocześnie. W tej chwili mam kilka webdriverów uruchamianych w osobnych wątkach i jakoś to działa tylko właśnie w osobnych oknach, a wymagania mam aby to się odbywało w kartach. W ostateczności mógłbym zrobić jeden webdriver i po każdej operacji zmieniać okno przez switchTo(), ale w moim przypadku to by było dość trudne do napisania - tzn kod byłby wtedy mało czytelny i trochę pomieszany.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.