Add browser obj to HTMLSession

This commit is contained in:
Ordanis Sanchez
2018-03-20 18:47:06 -04:00
parent ef67e9f96f
commit c279bd3d63
2 changed files with 18 additions and 0 deletions
+11
View File
@@ -661,6 +661,17 @@ class HTMLSession(requests.Session):
return HTMLResponse._from_response(r, self)
@property
def browser(self):
if not hasattr(self, "_browser"):
self.loop = asyncio.get_event_loop()
async def get_browser():
return await pyppeteer.launch(headless=True, args=['--no-sandbox'])
self._browser = self.loop.run_until_complete(get_browser())
return self._browser
class AsyncHTMLSession(requests.Session):
""" An async consumable session. """
+7
View File
@@ -2,6 +2,7 @@ import os
from functools import partial
import pytest
from pyppeteer.browser import Browser
from requests_html import HTMLSession, AsyncHTMLSession, HTML
from requests_file import FileAdapter
@@ -224,5 +225,11 @@ def test_bare_js_eval():
assert html.find('#replace', first=True).text == 'yolo'
@pytest.mark.ok
def test_browser_session():
assert isinstance(session.browser, Browser)
assert hasattr(session, "loop") == True
if __name__ == '__main__':
test_containing()