import os from selenium import webdriver from selenium.common import WebDriverException from selenium.webdriver.chrome.service import Service from tools.check import extract_domain_or_ip class ChromeHandle: def __init__(self): self.driver = None def init_browser(self): driver_path = '../chrome-win/chromedriver.exe' service = Service(executable_path=driver_path) options = webdriver.ChromeOptions() options.add_experimental_option("excludeSwitches", ["enable-automation"]) options.add_experimental_option("useAutomationExtension", False) self.driver = webdriver.Chrome(service=service, options=options) def login(self, url): if not self.check_driver_alive(): self.init_browser() self.driver.execute_script(f"window.open({url}, '_blank');") def u121_40_47_16_8088(self, params): self.login('http://121.40.47.16:8088/union/') handles = self.driver.window_handles self.driver.switch_to.window(handles[-1]) self.driver.find_element() def run(self, params): func_name = extract_domain_or_ip(params['url']) func = getattr(self, func_name) if not func: TypeError('未实现对应方法') func(params) def check_driver_alive(self) -> bool: try: if not self.driver: return False _ = self.driver.window_handles return True except WebDriverException: return False browser_handle = ChromeHandle() if __name__ == '__main__': obj = ChromeHandle() # obj.init_browser() obj.u121_40_47_16_8088({'user_name':'杜奎松', 'password':'123456'}) print(1)