quit()会等待浏览器进程关闭

This commit is contained in:
g1879 2023-08-24 10:05:46 +08:00
parent 03ae186f06
commit fa918f105a
2 changed files with 11 additions and 6 deletions

View File

@ -9,7 +9,6 @@ from .chromium_base import ChromiumBase, Timeout
from .chromium_driver import ChromiumDriver from .chromium_driver import ChromiumDriver
from .chromium_tab import ChromiumTab from .chromium_tab import ChromiumTab
from .commons.browser import connect_browser from .commons.browser import connect_browser
from .commons.tools import port_is_using
from .configs.chromium_options import ChromiumOptions from .configs.chromium_options import ChromiumOptions
from .errors import BrowserConnectError from .errors import BrowserConnectError
from .setter import ChromiumPageSetter from .setter import ChromiumPageSetter
@ -338,9 +337,16 @@ class ChromiumPage(ChromiumBase):
"""关闭浏览器""" """关闭浏览器"""
self._tab_obj.call_method('Browser.close') self._tab_obj.call_method('Browser.close')
self._tab_obj.stop() self._tab_obj.stop()
ip, port = self.address.split(':')
while port_is_using(ip, port): if self.process_id:
sleep(.1) from os import popen
from platform import system
txt = f'tasklist | findstr {self.process_id}' if system().lower() == 'windows' \
else f'ps -ef | grep {self.process_id}'
while True:
p = popen(txt)
if f' {self.process_id} ' not in p.read():
break
def _on_alert_close(self, **kwargs): def _on_alert_close(self, **kwargs):
"""alert关闭时触发的方法""" """alert关闭时触发的方法"""

View File

@ -421,8 +421,7 @@ class WebPage(SessionPage, ChromiumPage, BasePage):
self._response = None self._response = None
self._has_session = None self._has_session = None
if self._has_driver: if self._has_driver:
self._tab_obj.call_method('Browser.close') super(SessionPage, self).quit()
self._tab_obj.stop()
self._tab_obj = None self._tab_obj = None
self._has_driver = None self._has_driver = None