conftest.py 1.2 KB

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