From b8812625d928b024967692b963f4104797c9653b Mon Sep 17 00:00:00 2001 From: xieyiwen Date: Tue, 18 Dec 2018 21:43:11 +0800 Subject: [PATCH 1/5] Allows some js failed to load --- pyppeteer/page.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/pyppeteer/page.py b/pyppeteer/page.py index 5a293f4c..9bb4752a 100644 --- a/pyppeteer/page.py +++ b/pyppeteer/page.py @@ -882,9 +882,6 @@ def set_request(req: Request) -> None: result = await watcher.navigationPromise() watcher.cancel() helper.removeEventListeners(eventListeners) - error = result[0].pop().exception() # type: ignore - if error: - raise error request = requests.get(mainFrame._navigationURL) return request.response if request else None From 43772a04daf08389c2fe650e4559562bfa806726 Mon Sep 17 00:00:00 2001 From: xieyiwen Date: Tue, 18 Dec 2018 21:46:39 +0800 Subject: [PATCH 2/5] modify annotation --- pyppeteer/page.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyppeteer/page.py b/pyppeteer/page.py index 9bb4752a..360db628 100644 --- a/pyppeteer/page.py +++ b/pyppeteer/page.py @@ -846,7 +846,7 @@ async def goto(self, url: str, options: dict = None, **kwargs: Any * then main resource failed to load .. note:: - :meth:`goto` either raise error or return a main resource response. + :meth:`goto` return a main resource response. The only exceptions are navigation to ``about:blank`` or navigation to the same URL with a different hash, which would succeed and return ``None``. From 39da96154b22bb48b342b5b7770270dcb6ccebb9 Mon Sep 17 00:00:00 2001 From: xieyiwen Date: Wed, 19 Dec 2018 09:34:32 +0800 Subject: [PATCH 3/5] fix #b881262 : allows timeout --- pyppeteer/page.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/pyppeteer/page.py b/pyppeteer/page.py index 360db628..c4457fe7 100644 --- a/pyppeteer/page.py +++ b/pyppeteer/page.py @@ -491,7 +491,7 @@ async def cookies(self, *urls: str) -> dict: * ``sameSite`` (str): ``'Strict'`` or ``'Lax'`` """ if not urls: - urls = (self.url, ) + urls = (self.url,) resp = await self._client.send('Network.getCookies', { 'urls': urls, }) @@ -882,6 +882,10 @@ def set_request(req: Request) -> None: result = await watcher.navigationPromise() watcher.cancel() helper.removeEventListeners(eventListeners) + error = result[0].pop().exception() # type: ignore + if error: + if not isinstance(error, TimeoutError): + raise error request = requests.get(mainFrame._navigationURL) return request.response if request else None @@ -1729,7 +1733,6 @@ def waitForFunction(self, pageFunction: str, options: dict = None, 'JSHeapTotalSize', ) - unitToPixels = { 'px': 1, 'in': 96, From 5dc00a4f76a69b444e9f9eff755bb13c5639bda7 Mon Sep 17 00:00:00 2001 From: xieyiwen Date: Fri, 21 Dec 2018 11:00:05 +0800 Subject: [PATCH 4/5] ok --- pyppeteer/page.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/pyppeteer/page.py b/pyppeteer/page.py index c4457fe7..b4e498ad 100644 --- a/pyppeteer/page.py +++ b/pyppeteer/page.py @@ -22,6 +22,7 @@ from pyppeteer.element_handle import ElementHandle from pyppeteer.emulation_manager import EmulationManager from pyppeteer.errors import PageError +from pyppeteer.errors import TimeoutError as pyTimeoutError from pyppeteer.execution_context import JSHandle # noqa: F401 from pyppeteer.frame_manager import Frame # noqa: F401 from pyppeteer.frame_manager import FrameManager @@ -877,14 +878,14 @@ def set_request(req: Request) -> None: options) result = await self._navigate(url, referrer) - if result is not None: + if not result is None: raise PageError(result) result = await watcher.navigationPromise() watcher.cancel() helper.removeEventListeners(eventListeners) error = result[0].pop().exception() # type: ignore if error: - if not isinstance(error, TimeoutError): + if not isinstance(error, pyTimeoutError): raise error request = requests.get(mainFrame._navigationURL) @@ -895,6 +896,8 @@ async def _navigate(self, url: str, referrer: str) -> Optional[str]: 'Page.navigate', {'url': url, 'referrer': referrer}) if response.get('errorText'): return f'{response["errorText"]} at {url}' + if response.get('error_text'): + return f'{response["error_text"]} at {url}' return None async def reload(self, options: dict = None, **kwargs: Any From 0b1f2169998ea7fdeaa1ef2456da6761db06eecc Mon Sep 17 00:00:00 2001 From: xieyiwen Date: Tue, 8 Jan 2019 00:22:33 +0800 Subject: [PATCH 5/5] ok --- pyppeteer/connection.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyppeteer/connection.py b/pyppeteer/connection.py index 8a0527e7..284708c7 100644 --- a/pyppeteer/connection.py +++ b/pyppeteer/connection.py @@ -41,7 +41,7 @@ def __init__(self, url: str, loop: asyncio.AbstractEventLoop, self.connection: CDPSession self._connected = False self._ws = websockets.client.connect( - self._url, max_size=None, loop=self._loop) + self._url, max_size=None, loop=self._loop, ping_interval=None, ping_timeout=None) self._recv_fut = self._loop.create_task(self._recv_loop()) self._closeCallback: Optional[Callable[[], None]] = None