def start(self): """Start remote browser process.""" self._prev_logging = options.config.logging options.config.logging = "warn" self.proc = ProcessController() self.browser = RemoteBrowserController() self.element = RemoteElementController() try: self.server = server.start_server(port=0) except OSError: self.wait(0.2) self.server = server.start_server(port=0) self.address = self.server.address self.url = "http://{0}:{1}/".format(self.address, self.port) self.browser.get(self.url) self.wait_until(lambda: server.is_connected())
def main(): # from tornado.ioloop import IOLoop # from tornado.platform.asyncio import AsyncIOMainLoop import asyncio from wdom.misc import install_asyncio install_asyncio() from wdom.server import start_server, get_app, stop_server # from wdom.server_aio import start_server, get_app, stop_server # from wdom.server_tornado import start_server, get_app, stop_server # from wdom.examples.markdown_simple import sample_page # from wdom.examples.rev_text import sample_page # from wdom.examples.data_binding import sample_page # from wdom.examples.todo import sample_page from wdom.examples.theming import sample_page # from wdom.themes import bootstrap3, mdl, skeleton, pure, semantic, kube, foundation, mui from wdom.themes import default page = sample_page(default) app = get_app(document=page) loop = asyncio.get_event_loop() server = start_server(app=app, loop=loop) try: loop.run_forever() except KeyboardInterrupt: stop_server(server) loop.close()
def start(self) -> None: """Start remote browser process.""" self._prev_logging = options.config.logging options.config.logging = 'warn' self.proc = ProcessController() self.browser = RemoteBrowserController() self.element = RemoteElementController() try: self.server = server.start_server(port=0) except OSError: self.wait(0.2) self.server = server.start_server(port=0) self.address = server_config['address'] self.url = 'http://{0}:{1}/'.format(self.address, self.port) self.browser.get(self.url) self.wait_until(lambda: server.is_connected())
def main(): AsyncIOMainLoop().install() doc = get_document() if not options.config.no_default_js: doc.add_jsfile( 'https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js') doc.add_jsfile('static/bootstrap.min.js') if not options.config.no_default_css: doc.add_cssfile('static/bootstrap.min.css') _user_static_dirs = set() for js in options.config.js_files: _user_static_dirs.add(path.dirname(js)) doc.add_jsfile(js) for css in options.config.css_files: _user_static_dirs.add(path.dirname(css)) doc.add_cssfile(css) # choices arg is better, but detecting error is not easy in livemark.vim if options.config.highlight_theme in STYLE_MAP: pygments_style = HtmlFormatter( style=options.config.highlight_theme).get_style_defs() else: pygments_style = HtmlFormatter('default').get_style_defs() doc.head.appendChild(Style(pygments_style)) script = Script(parent=doc.body) script.innerHTML = ''' function moveToElement(id) { var elm = document.getElementById(id) if (elm) { var x = window.scrollX var rect = elm.getBoundingClientRect() window.scrollTo(x, rect.top + window.scrollY) console.log(elm.textContent) } } ''' mount_point = Div(parent=doc.body, class_='container') mount_point.appendChild(H2('LiveMark is running...')) app = get_app(doc) app.add_static_path('static', static_dir) for _d in _user_static_dirs: app.add_static_path(_d, _d) web_server = start_server(app, port=options.config.browser_port) loop = asyncio.get_event_loop() vim_server = Server(port=options.config.vim_port, loop=loop, doc=doc, mount_point=mount_point) browser = webbrowser.get(options.config.browser) browser.open('http://localhost:{}'.format(options.config.browser_port)) try: vim_server.start() loop.run_forever() except KeyboardInterrupt: vim_server.stop() web_server.stop()
def setUp(self): self.doc = get_document() self.doc.body.appendChild(self.app()) self.server = start_server(port=0) self.addr = server_config['address'] self.port = server_config['port'] self.url = 'http://{}:{}/'.format(self.addr, self.port) self.page = page sync(self.page.goto(self.url))
def start(self): """Start web server. Please call this method after prepraring document. """ with self.assertLogs("wdom", "INFO"): self.server = server.start_server(port=0) self.port = self.server.port self.url = "http://localhost:{}".format(self.port) self.ws_url = "ws://localhost:{}".format(self.port) self._server_started = True
def setUp(self): from syncer import sync super().setUp() self.doc = get_document() self.root = self.get_elements() self.doc.body.prepend(self.root) self.server = server.start_server(port=0) self.address = server_config['address'] self.port = server_config['port'] self.url = 'http://{}:{}'.format(self.address, self.port) sync(self.page.goto(self.url)) self.element = sync(self.get_element_handle(self.root))
def start(self) -> None: """Start web server. Please call this method after prepraring document. """ time.sleep(0.1) with self.assertLogs(root_logger, 'INFO'): self.server = server.start_server(port=0) time.sleep(0.1) self.port = server_config['port'] self.url = 'http://localhost:{}'.format(self.port) self.ws_url = 'ws://localhost:{}'.format(self.port) self._server_started = True
def main(): import asyncio from wdom.server import start_server, get_app, stop_server doc = sample_page() app = get_app(document=doc) loop = asyncio.get_event_loop() server = start_server(app=app, loop=loop) try: loop.run_forever() except KeyboardInterrupt: stop_server(server) loop.close()
from wdom.server import get_app, start_server, stop_server from wdom.document import get_document from wdom.tag import Div, H1, Input class MyElement(Div): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.h1 = H1(parent=self) self.h1.textContent = 'Hello, WDOM' self.input = Input(parent=self) self.input.addEventListener('input', self.update) def update(self, event): self.h1.textContent = event.target.value if __name__ == '__main__': install_asyncio() # only when using tornado document = get_document() document.body.appendChild(MyElement()) app = get_app(document) loop = asyncio.get_event_loop() server = start_server(app, port=8888, loop=loop) try: loop.run_forever() except KeyboardInterrupt: stop_server(server)
import asyncio from wdom.server import start_server, stop_server from wdom.document import get_document from wdom.tag import Div, H1, Input class MyElement(Div): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.h1 = H1() self.h1.textContent = 'Hello, WDOM' self.input = Input() self.input.addEventListener('input', self.update) self.appendChild(self.input) self.appendChild(self.h1) def update(self, event): self.h1.textContent = event.target.value if __name__ == '__main__': document = get_document() document.body.appendChild(MyElement()) server = start_server() try: asyncio.get_event_loop().run_forever() except KeyboardInterrupt: stop_server()
def main(): AsyncIOMainLoop().install() doc = get_document() if not options.config.no_default_js: doc.add_jsfile( 'https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js' ) doc.add_jsfile('static/bootstrap.min.js') if not options.config.no_default_css: doc.add_cssfile('static/bootstrap.min.css') _user_static_dirs = set() for js in options.config.js_files: _user_static_dirs.add(path.dirname(js)) doc.add_jsfile(js) for css in options.config.css_files: _user_static_dirs.add(path.dirname(css)) doc.add_cssfile(css) # choices arg is better, but detecting error is not easy in livemark.vim if options.config.highlight_theme in STYLE_MAP: pygments_style = HtmlFormatter( style=options.config.highlight_theme).get_style_defs() else: pygments_style = HtmlFormatter('default').get_style_defs() doc.head.appendChild(Style(pygments_style)) script = Script(parent=doc.body) script.innerHTML = ''' function moveToElement(id) { var elm = document.getElementById(id) if (elm) { var x = window.scrollX var rect = elm.getBoundingClientRect() window.scrollTo(x, rect.top + window.scrollY) console.log(elm.textContent) } } ''' mount_point = Div(parent=doc.body, class_='container') mount_point.appendChild(H2('LiveMark is running...')) app = get_app(doc) app.add_static_path('static', static_dir) for _d in _user_static_dirs: app.add_static_path(_d, _d) web_server = start_server(app, port=options.config.browser_port) loop = asyncio.get_event_loop() vim_server = Server(port=options.config.vim_port, loop=loop, doc=doc, mount_point=mount_point) browser = webbrowser.get(options.config.browser) browser.open('http://localhost:{}'.format(options.config.browser_port)) try: vim_server.start() loop.run_forever() except KeyboardInterrupt: vim_server.stop() web_server.stop()
import time import subprocess import asyncio import tempfile from selenium.webdriver.common.utils import free_port from syncer import sync from wdom.misc import install_asyncio from wdom.document import get_document from wdom import server from wdom.testing import TestCase, HTTPTestCase curdir = path.dirname(__file__) root = path.dirname(path.dirname(curdir)) script = ''' import asyncio import atexit from wdom import document, server doc = document.get_document() with open(doc.tempdir + '/a.html', 'w') as f: f.write(doc.tempdir) server.start_server() atexit.register(server.stop_server) try: asyncio.get_event_loop().run_forever() except: server.stop_server() '''
def start_server(port): import asyncio from wdom import server server.start_server(port=port) asyncio.get_event_loop().run_forever()
class App(Div): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.text = H1(parent=self) self.text.textContent = 'Hello!' self.textbox = Input(parent=self) self.textbox.setAttribute('type', 'text') self.textbox.addEventListener('input', self.update) def update(self, event): self.text.textContent = self.textbox.getAttribute('value') def sample_app(**kwargs): return App() if __name__ == '__main__': import asyncio from wdom.document import get_document from wdom import server document = get_document() document.body.prepend(sample_app()) server.start_server() try: asyncio.get_event_loop().run_forever() except KeyboardInterrupt: pass server.stop_server()
import asyncio from wdom.document import get_document from wdom.server import start_server, stop_server from wdom.tag import Button if __name__ == '__main__': document = get_document() # Add <link>-tag sourcing bootstrap.min.css on <head> document.add_cssfile('https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css') # Add <script>-tag sourcing jquery and bootstrap.min.js to <body> document.add_jsfile('https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js') document.add_jsfile('https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js') # Add bootstrap button element document.body.appendChild(Button('click', class_='btn btn-primary')) start_server() try: asyncio.get_event_loop().run_forever() except KeyboardInterrupt: stop_server()
self.document.body.appendChild(self.ul) @on_event('*') @on_message('*') def every_frame(self, frame): li = Li() prefix = FRAME_PREFIX[frame.kind] text = frame_template.format(prefix=prefix, source=frame.source, name=frame.name) data = frame.data if data and not (len(data.keys()) == 1 and 'text' in data): text += data_template.format(data=pformat(data)) li.innerHTML = text self.ul.appendChild(li) if __name__ == '__main__': start_server() try: dom_agent = BrowserDOMAgent('dom') run_agents(dom_agent, shell=True, endpoint='redis://127.0.0.1:6379', auth=ZENTROPI_REDIS_PASSWORD) except KeyboardInterrupt: stop_server() finally: stop_server()