conftest.py 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import datetime
  2. import os
  3. import pytest
  4. from .user import User
  5. @pytest.fixture
  6. def chrome_options(chrome_options):
  7. chrome_options.add_argument('headless')
  8. chrome_options.add_argument('disable-gpu')
  9. chrome_options.add_argument('window-size=1200x600')
  10. chrome_options.add_experimental_option('w3c', False)
  11. return chrome_options
  12. @pytest.fixture
  13. def selenium(selenium):
  14. selenium.implicitly_wait(0.1)
  15. selenium.set_page_load_timeout(1)
  16. return selenium
  17. @pytest.fixture()
  18. def user(selenium):
  19. user = User(selenium)
  20. yield user
  21. user.stop_server()
  22. @pytest.fixture
  23. def screenshot(selenium):
  24. # original taken from https://github.com/theserverlessway/pytest-chrome/blob/master/tests/conftest.py
  25. def shot(name=''):
  26. directory = 'screenshots'
  27. if not os.path.exists(directory):
  28. os.makedirs(directory)
  29. identifier = datetime.datetime.now().isoformat()
  30. if name:
  31. identifier = f'{identifier}-{name}'
  32. filename = f'{directory}/{identifier}.png'
  33. print(f'Storing Screenshot to {filename}')
  34. selenium.get_screenshot_as_file(filename)
  35. return shot