verify-chromedriver.py 1.4 KB

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