login.lua 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. -- 登录
  2. local login_url = "https://tpass.beijing.chinatax.gov.cn:8443/#/login?redirect_uri=https%3A%2F%2Fetax.beijing.chinatax.gov.cn%2Fkxsfrz-cjpt-web%2Ftpass%2FtpassLogin.do&client_id=dcR7baR2cd6f428R8b7f9dfRRfc6bRd6&response_type=code&state=test"
  3. local browser_timeout = 1000*60*60*24
  4. -- login 登录
  5. function login()
  6. browser_navagite(browser_timeout, login_url)
  7. local login_success_flag,reflush_qr_times = false ,0
  8. repeat
  9. browser_sleep(1000)
  10. print("获取二维码")
  11. local ok = browser_wait_visible(1,"#qrcodeDiv img",1000*5)
  12. local ok,img = browser_executejs(1000*5,0,'document.querySelector("#qrcodeDiv img").src')
  13. --发送二维码图像,并等待扫码,超时后自动刷新页面
  14. browser_send_img_chatbot('all','https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=f416abfc-2e3b-419c-a0a7-2f5427d81c9d',img)
  15. --检查页面是否切换
  16. local check_retry_times = 0
  17. -- 循环检查页面是否变化,扫码登录是否成功,这里间隔5秒,尝试检查10次,50秒二维码也会失效,需要刷新tab页
  18. repeat
  19. print("检查扫码状态")
  20. local ok,current_tab_url = browser_executejs(1000*5,0,'window.location.href')
  21. if current_tab_url~=login_url then
  22. login_success_flag=true
  23. else
  24. check_retry_times = check_retry_times+1
  25. browser_sleep(1000*5)
  26. end
  27. check_retry_times=check_retry_times+1
  28. until login_success_flag or check_retry_times>10 --检查扫码结束
  29. --检查上一个循环是因为超时,还是真正登录成功了
  30. if check_retry_times>10 then
  31. print("超时了,重新刷新二维码")
  32. browser_reload(browser_timeout)
  33. else
  34. print("登录成功")
  35. end
  36. reflush_qr_times = reflush_qr_times+1
  37. until login_success_flag or reflush_qr_times > 5 --登录检查结束
  38. return login_success_flag
  39. end