2.script_mode.py 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. import os
  2. import subprocess
  3. import time
  4. from percy import percySnapshot
  5. from selenium.webdriver import Chrome
  6. import template
  7. import util
  8. from pywebio.input import *
  9. from pywebio.output import *
  10. from pywebio.utils import run_as_function
  11. def target():
  12. template.basic_output()
  13. template.background_output()
  14. run_as_function(template.basic_input())
  15. actions(buttons=['Continue'])
  16. template.background_input()
  17. def test(server_proc: subprocess.Popen, browser: Chrome):
  18. template.test_output(browser)
  19. time.sleep(1)
  20. template.test_input(browser)
  21. # script mode 下,此时 server 应停止
  22. server_proc.wait(timeout=8)
  23. time.sleep(1)
  24. template.save_output(browser, '2.script_mode.html',
  25. process_func=lambda i: i.replace('::1', '127.0.0.1')) # because tornado default bind ipv4 and ipv6 in script mode
  26. if __name__ == '__main__':
  27. # 设置监听端口,并关闭自动打开浏览器
  28. os.environ["PYWEBIO_SCRIPT_MODE_PORT"] = "8080"
  29. util.run_test(target, test)