browser_option.py 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. import os
  2. from selenium import webdriver
  3. from selenium.common import WebDriverException
  4. from selenium.webdriver.chrome.service import Service
  5. from tools.check import extract_domain_or_ip
  6. class ChromeHandle:
  7. def __init__(self):
  8. self.driver = None
  9. def init_browser(self):
  10. driver_path = '../chrome-win/chromedriver.exe'
  11. service = Service(executable_path=driver_path)
  12. options = webdriver.ChromeOptions()
  13. options.add_experimental_option("excludeSwitches", ["enable-automation"])
  14. options.add_experimental_option("useAutomationExtension", False)
  15. self.driver = webdriver.Chrome(service=service, options=options)
  16. def login(self, url):
  17. if not self.check_driver_alive():
  18. self.init_browser()
  19. self.driver.execute_script(f"window.open({url}, '_blank');")
  20. def u121_40_47_16_8088(self, params):
  21. self.login('http://121.40.47.16:8088/union/')
  22. handles = self.driver.window_handles
  23. self.driver.switch_to.window(handles[-1])
  24. self.driver.find_element()
  25. def run(self, params):
  26. func_name = extract_domain_or_ip(params['url'])
  27. func = getattr(self, func_name)
  28. if not func:
  29. TypeError('未实现对应方法')
  30. func(params)
  31. def check_driver_alive(self) -> bool:
  32. try:
  33. if not self.driver:
  34. return False
  35. _ = self.driver.window_handles
  36. return True
  37. except WebDriverException:
  38. return False
  39. browser_handle = ChromeHandle()
  40. if __name__ == '__main__':
  41. obj = ChromeHandle()
  42. # obj.init_browser()
  43. obj.u121_40_47_16_8088({'user_name':'杜奎松', 'password':'123456'})
  44. print(1)