mirror of
https://github.com/kennethreitz/requests-html.git
synced 2026-06-05 23:00:20 +00:00
Add browser obj to HTMLSession
This commit is contained in:
@@ -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. """
|
||||
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user