mirror of
https://gitee.com/g1879/DrissionPage.git
synced 2024-12-10 04:00:23 +08:00
调整close_driver()和kill_browser()逻辑
This commit is contained in:
parent
bae4687de2
commit
13dadf74a7
@ -185,11 +185,14 @@ class Drission(object):
|
|||||||
|
|
||||||
pid = self.get_browser_progress_id()
|
pid = self.get_browser_progress_id()
|
||||||
from os import popen
|
from os import popen
|
||||||
if pid and popen(f'tasklist | findstr {pid}').read().lower().startswith('chrome.exe'):
|
from platform import system
|
||||||
print('kill')
|
|
||||||
|
if pid and system().lower() == 'windows' \
|
||||||
|
and popen(f'tasklist | findstr {pid}').read().lower().startswith('chrome.exe'):
|
||||||
popen(f'taskkill /pid {pid} /F')
|
popen(f'taskkill /pid {pid} /F')
|
||||||
|
|
||||||
else:
|
else:
|
||||||
self.close_driver()
|
self._driver.quit()
|
||||||
|
|
||||||
def get_browser_progress_id(self) -> Union[str, None]:
|
def get_browser_progress_id(self) -> Union[str, None]:
|
||||||
"""获取浏览器进程id"""
|
"""获取浏览器进程id"""
|
||||||
@ -223,6 +226,10 @@ class Drission(object):
|
|||||||
self._show_or_hide_browser(False)
|
self._show_or_hide_browser(False)
|
||||||
|
|
||||||
def _show_or_hide_browser(self, hide: bool = True) -> None:
|
def _show_or_hide_browser(self, hide: bool = True) -> None:
|
||||||
|
from platform import system
|
||||||
|
if system().lower() != 'windows':
|
||||||
|
raise OSError('该方法只能在Windows系统使用。')
|
||||||
|
|
||||||
try:
|
try:
|
||||||
from win32gui import ShowWindow
|
from win32gui import ShowWindow
|
||||||
from win32con import SW_HIDE, SW_SHOW
|
from win32con import SW_HIDE, SW_SHOW
|
||||||
@ -360,10 +367,14 @@ class Drission(object):
|
|||||||
selenium_user_agent = driver.execute_script("return navigator.userAgent;")
|
selenium_user_agent = driver.execute_script("return navigator.userAgent;")
|
||||||
session.headers.update({"User-Agent": selenium_user_agent})
|
session.headers.update({"User-Agent": selenium_user_agent})
|
||||||
|
|
||||||
def close_driver(self) -> None:
|
def close_driver(self, kill: bool = False) -> None:
|
||||||
"""关闭driver和浏览器"""
|
"""关闭driver和浏览器"""
|
||||||
if self._driver:
|
if self._driver:
|
||||||
|
if kill:
|
||||||
|
self.kill_browser()
|
||||||
|
else:
|
||||||
self._driver.quit()
|
self._driver.quit()
|
||||||
|
|
||||||
self._driver = None
|
self._driver = None
|
||||||
|
|
||||||
def close_session(self) -> None:
|
def close_session(self) -> None:
|
||||||
|
@ -303,7 +303,7 @@ class MixPage(SessionPage, DriverPage, BasePage):
|
|||||||
"""
|
"""
|
||||||
self._drission.cookies_to_session(copy_user_agent)
|
self._drission.cookies_to_session(copy_user_agent)
|
||||||
|
|
||||||
def cookies_to_driver(self, url=None) -> None:
|
def cookies_to_driver(self, url: str = None) -> None:
|
||||||
"""从session复制cookies到driver \n
|
"""从session复制cookies到driver \n
|
||||||
chrome需要指定域才能接收cookies \n
|
chrome需要指定域才能接收cookies \n
|
||||||
:param url: 目标域
|
:param url: 目标域
|
||||||
@ -330,7 +330,7 @@ class MixPage(SessionPage, DriverPage, BasePage):
|
|||||||
def close_driver(self) -> None:
|
def close_driver(self) -> None:
|
||||||
"""关闭driver及浏览器"""
|
"""关闭driver及浏览器"""
|
||||||
self._driver = None
|
self._driver = None
|
||||||
self.drission.close_driver()
|
self.drission.close_driver(True)
|
||||||
|
|
||||||
def close_session(self) -> None:
|
def close_session(self) -> None:
|
||||||
"""关闭session"""
|
"""关闭session"""
|
||||||
|
Loading…
x
Reference in New Issue
Block a user