Source code for capybara.werkzeug.driver
from xpath import dsl as x
from xpath.renderer import to_xpath
from capybara.driver.base import Base
from capybara.werkzeug.browser import Browser
from capybara.werkzeug.node import Node
[docs]class Driver(Base):
redirect_limit = 5
def __init__(self, app):
self.app = app
self._browser = None
@property
def browser(self):
if self._browser is None:
self._browser = Browser(self)
return self._browser
@property
def current_url(self):
return self.browser.current_url
@property
def title(self):
elements = self.browser.dom.xpath("/html/head/title")
return elements[0].text if len(elements) else None
@property
def html(self):
return self.browser.html
[docs] def visit(self, path):
self.browser.visit(path)
[docs] def refresh(self):
self.browser.refresh()
[docs] def follow(self, method, path, params=None):
self.browser.follow(method, path, params)
[docs] def submit(self, method, path, params):
self.browser.submit(method, path, params)
[docs] def reset(self):
self._browser = None
def _find_css(self, css):
elements = self.browser.dom.css(css)
return [Node(self, element) for element in elements]
def _find_xpath(self, xpath):
elements = self.browser.dom.xpath(xpath)
return [Node(self, element) for element in elements]