verify-chromedriver.py 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. #!/usr/bin/env python3
  2. import argparse
  3. import os
  4. import re
  5. import subprocess
  6. import sys
  7. SOURCE_ROOT = os.path.abspath(os.path.dirname(os.path.dirname(__file__)))
  8. def main():
  9. args = parse_args()
  10. chromedriver_name = {
  11. 'darwin': 'chromedriver',
  12. 'win32': 'chromedriver.exe',
  13. 'linux': 'chromedriver',
  14. 'linux2': 'chromedriver'
  15. }
  16. chromedriver_path = os.path.join(
  17. args.source_root, args.build_dir, chromedriver_name[sys.platform])
  18. with subprocess.Popen([chromedriver_path],
  19. stdout=subprocess.PIPE,
  20. universal_newlines=True) as proc:
  21. try:
  22. output = proc.stdout.readline()
  23. except KeyboardInterrupt:
  24. returncode = 0
  25. finally:
  26. proc.terminate()
  27. returncode = 0
  28. match = re.search(
  29. '^Starting ChromeDriver [0-9]+.[0-9]+.[0-9]+.[0-9]+ .* on port [0-9]+$',
  30. output
  31. )
  32. if match is None:
  33. returncode = 1
  34. if returncode == 0:
  35. print('ok ChromeDriver is able to be initialized.')
  36. return returncode
  37. def parse_args():
  38. parser=argparse.ArgumentParser(description='Test ChromeDriver')
  39. parser.add_argument('--source-root',
  40. default=SOURCE_ROOT,
  41. required=False)
  42. parser.add_argument('--build-dir',
  43. default=None,
  44. required=True)
  45. return parser.parse_args()
  46. if __name__ == '__main__':
  47. sys.exit(main())