本文整理汇总了Python中zope.testbrowser.browser.Browser类的典型用法代码示例。如果您正苦于以下问题:Python Browser类的具体用法?Python Browser怎么用?Python Browser使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Browser类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: perform_submission
def perform_submission(app_url, testing_secret):
token = None
errors = []
browser = Browser()
browser.mech_browser.set_handle_robots(False)
try:
browser.open(app_url)
except Exception as exc:
errors.append(WatchdogError(
subject="Couldn't open submission page",
message=u"The attempt to access the submission form resulted in an exception (%s)" % exc))
return token, errors
try:
submit_form = browser.getForm(id='briefkasten-form')
except LookupError:
errors.append(WatchdogError(subject=u"Couldn't find submission form",
message=u"""The contact form was not accessible"""))
return token
submit_form.getControl(name='message').value = u'This is an automated test submission from the watchdog instance.'
submit_form.getControl(name='testing_secret').value = testing_secret
# TODO: submit attachment
submit_form.submit()
response = PyQuery(browser.contents)
token_element = response("#feedback-token")
token = None
if token_element is not None:
token = token_element.text()
if not bool(token):
errors.append(WatchdogError(subject="Couldn't get feedback token",
message=u"The form submission was successful, but no feedback-token was given at %s" % browser.url))
return token, errors
示例2: __init__
def __init__(self, url=None, headers=None):
baseBrowser.__init__(self, url=None)
if headers is None: headers = []
self.mech_browser.set_handle_robots(False)
for h in headers:
k, val = h
self.addHeader(k, val)
if url is not None:
self.open(url)
示例3: setupBrowser
def setupBrowser(auth=None):
"""
Taken from canonical.launchpad.testing.pages:
Create a testbrowser object for use in pagetests.
:param auth: HTTP authentication string. None for the anonymous user, or a
string of the form 'Basic email:password' for an authenticated user.
:return: A `Browser` object.
"""
browser = Browser()
# Set up our Browser objects with handleErrors set to False, since
# that gives a tracebacks instead of unhelpful error messages.
browser.handleErrors = False
if auth is not None:
browser.addHeader("Authorization", auth)
return browser
示例4: setUp
def setUp(self):
super(TestDisplayValue, self).setUp()
app = TestApp()
app.set_next_response(b'''\
<html>
<body>
<form>
<select name="sel1">
<option value="op">Turn</option>
<option value="alt">Alternative</option>
</select>
</form>
</body>
</html>''')
browser = Browser(wsgi_app=app)
browser.open('https://localhost')
self.control = browser.getControl(name='sel1')
示例5: _getPadsPage
def _getPadsPage(self):
username, password, url = self.getUserData()
# login
browser = Browser()
browser.open('%s/ep/account/sign-in' % self.trail_url(url))
browser.getControl(name='email').value = username
browser.getControl(name='password').value = password
browser.getForm(id='signin-form').submit()
# open pads table page
browser.getLink('Pads').click()
return safe_unicode(browser.contents)
示例6: getLink
def getLink(self, url=None):
if not url: return
# /////////////////////////////////////////////////////////////////////////////
# Scenario 1: do a simple search for all web server logs
# /////////////////////////////////////////////////////////////////////////////
# start search
browser = Browser()
# Get URL
#
# Option A: return all of the matched events
browser.open(url)
ctrl = browser.getControl(name='')
ctrl.value = ''
ctrl = browser.getControl(name='')
ctrl.value = ''
ctrl = browser.getControl(name='submitButtonName')
ctrl.click()
print browser.contents
示例7: TestMechRepr
class TestMechRepr(unittest.TestCase):
"""Testing ..browser.*.mechRepr()."""
def setUp(self):
super(TestMechRepr, self).setUp()
app = TestApp()
app.set_next_response(u'''\
<html>
<body>
<form>
<input name="inp1" type="text" value="Täkst" />
<select name="sel1">
<option value="op">Türn</option>
</select>
<input name="check1" type="checkbox" value="šêlėçtèd" />
<input name="mail1" type="email" value="[email protected]" />
<input name="sub1" type="submit" value="Yës" />
</form>
</body>
</html>'''.encode('utf-8'))
self.browser = Browser(wsgi_app=app)
self.browser.open('https://localhost')
def test_TextControl_has_str_mechRepr(self):
mech_repr = self.browser.getControl(name='inp1').mechRepr()
self.assertIsInstance(mech_repr, str)
self.assertEqual(mech_repr, '<TextControl(inp1=Täkst)>')
def test_ItemControl_has_str_mechRepr(self):
option = self.browser.getControl(name='sel1').getControl(value="op")
mech_repr = option.mechRepr()
self.assertIsInstance(mech_repr, str)
self.assertEqual(
mech_repr,
"<Item name='op' id=None contents='Türn' value='op'"
" label='Türn'>")
def test_CheckboxListControl_has_str_mechRepr(self):
from ..browser import CheckboxListControl
ctrl = self.browser.getControl(name='check1')
self.assertIsInstance(ctrl, CheckboxListControl)
mech_repr = ctrl.mechRepr()
self.assertIsInstance(mech_repr, str)
self.assertEqual(mech_repr, '<SelectControl(check1=[*, ambiguous])>')
def test_Control_for_type_email_has_mechRepr(self):
option = self.browser.getControl(name='mail1')
mech_repr = option.mechRepr()
self.assertIsInstance(mech_repr, str)
self.assertEqual(mech_repr, "<EMailControl([email protected])>")
def test_SubmitControl_has_str_mechRepr(self):
mech_repr = self.browser.getControl(name='sub1').mechRepr()
self.assertIsInstance(mech_repr, str)
self.assertEqual(mech_repr, '<SubmitControl(sub1=Yës)>')
示例8: login
def login(self):
br = Browser()
br.mech_browser.set_handle_robots(False)
br.open(self.starturl)
br.getControl('Username:').value = self.acc_user
br.getControl('Password:').value = self.acc_pass
br.getControl('Login').click()
return br
示例9: perform_submission
def perform_submission(app_url, testing_secret):
token = None
errors = []
browser = Browser()
browser.open(app_url)
try:
submit_form = browser.getForm(id='briefkasten-form')
except LookupError:
errors.append(WatchdogError(subject=u"Couldn't find submission form",
message=u""""""))
return token
submit_form.getControl(name='message').value = u'This is an automated test submission from the watchdog instance.'
submit_form.getControl(name='testing_secret').value = testing_secret
# TODO: submit attachment
submit_form.submit()
response = PyQuery(browser.contents)
token_element = response("#feedback-token")
if token_element is not None:
token = token_element.text()
else:
errors.append(WatchdogError(subject="Couldn't get feedback token",
message=u"The form submission was successful, but no feedback-token was given at %s" % browser.url))
return token, errors
示例10: __init__
def __init__(self, username, password, path=None):
"""
@param username: DeviceAtlas username
@param password: DeviceAtlas password
@param path: Path to install API and database files or None to use ~/da_distribution. Path is added to PYTHONPATH.
"""
try:
from zope.testbrowser.browser import Browser
except ImportError:
raise
raise RuntimeError("zope.testbrowser must be installed to automatize DeviceAtlas downloads")
self.browser = Browser()
if not path:
path = os.path.abspath(os.path.join(os.getenv("HOME"), "da_distribution"))
self.path = path
# Wrap things away from Python namespace
self.api_path = os.path.join(path, "da_api")
if not os.path.exists(self.path):
os.makedirs(self.path)
os.makedirs(self.api_path)
if not path in sys.path:
# Include autodownload folder in Python import
sys.path.append(self.path)
self.fname = "da.zip"
self.json_file = "json.zip"
self.raw_json = os.path.join(self.path, "data.json") # Unzipped json database
self.username = username
self.password = password
self.login_url = "http://deviceatlas.com"
self.api_url = url="http://deviceatlas.com/getAPI/python"
示例11: __init__
def __init__(self, downloads_urls, urls_file, username, password,
dest_dir=None, generate_thumbs=True, font_path=None,
stop_at_quota=500):
self.downloads_urls = downloads_urls
self.urls_file = urls_file
self.username = username
self.password = password
if dest_dir is None:
dest_dir = os.getcwd()
self.dest_dir = dest_dir
self.generate_thumbs = generate_thumbs
self.font_path = font_path
self.stop_at_quota = stop_at_quota
log.info("Starting Browser")
self.browser = Browser("http://oron.com")
self.to_download = 0
self.downloaded = 0
self.download_quota = 0
self.downloads_until_quota_reload = 10
示例12: __init__
def __init__(self, options):
self.oron_folder_url = options.url
self.title_base = options.title_base
self.links_per_post = options.links_per_post
self.screenshots_dir = options.screenshots
self.output_dir = options.output
# Email Options
self.smtp_host = options.smtp_host
self.smtp_port = options.smtp_port
self.smtp_user = options.smtp_user
self.smtp_pass = options.smtp_pass
self.smtp_from = options.smtp_from
self.smtp_use_tls = options.smtp_use_tls
self.email_recipient = options.email
self.email_initial_text = options.email_initial_text
self.email_ending_text = options.email_ending_text
self.start_on_post = options.start_on_post
log.info("Starting Browser")
self.browser = Browser("http://oron.com")
self.total_links = 0
self.links = {}
示例13: ZopeTestBrowser
class ZopeTestBrowser(DriverAPI):
driver_name = "zope.testbrowser"
def __init__(self):
self._browser = Browser()
self._cookie_manager = CookieManager(self._browser.cookies)
self._last_urls = []
def visit(self, url):
self._browser.open(url)
def back(self):
self._last_urls.insert(0, self.url)
self._browser.goBack()
def forward(self):
try:
self.visit(self._last_urls.pop())
except IndexError:
pass
def reload(self):
self._browser.reload()
def quit(self):
pass
@property
def title(self):
return self._browser.title
@property
def html(self):
return self._browser.contents
@property
def url(self):
return self._browser.url
def find_option_by_value(self, value):
html = lxml.html.fromstring(self.html)
element = html.xpath('//option[@value="%s"]' % value)[0]
control = self._browser.getControl(element.text)
return ElementList([ZopeTestBrowserOptionElement(control, self)], find_by="value", query=value)
def find_option_by_text(self, text):
html = lxml.html.fromstring(self.html)
element = html.xpath('//option[normalize-space(text())="%s"]' % text)[0]
control = self._browser.getControl(element.text)
return ElementList([ZopeTestBrowserOptionElement(control, self)], find_by="text", query=text)
def find_by_css(self, selector):
xpath = CSSSelector(selector).path
return self.find_by_xpath(xpath, original_find="css", original_selector=selector)
def find_by_xpath(self, xpath, original_find=None, original_selector=None):
html = lxml.html.fromstring(self.html)
elements = []
for xpath_element in html.xpath(xpath):
if self._element_is_link(xpath_element):
return self.find_link_by_text(xpath_element.text)
elif self._element_is_control(xpath_element):
return self.find_by_name(xpath_element.name)
else:
elements.append(xpath_element)
find_by = original_find or "xpath"
query = original_selector or xpath
return ElementList(
[ZopeTestBrowserElement(element, self) for element in elements], find_by=find_by, query=query
)
def find_by_tag(self, tag):
return self.find_by_xpath("//%s" % tag, original_find="tag", original_selector=tag)
def find_by_value(self, value):
return self.find_by_xpath('//*[@value="%s"]' % value, original_find="value", original_selector=value)
def find_by_id(self, id_value):
return self.find_by_xpath('//*[@id="%s"][1]' % id_value, original_find="id", original_selector=id_value)
def find_by_name(self, name):
elements = []
index = 0
while True:
try:
control = self._browser.getControl(name=name, index=index)
elements.append(control)
index += 1
except IndexError:
break
return ElementList(
[ZopeTestBrowserControlElement(element, self) for element in elements], find_by="name", query=name
)
#.........这里部分代码省略.........
示例14: __init__
def __init__(self, domain, username, password):
'''Create an administrator, then log in with the given credentials.'''
self.domain = domain
self.browser = Browser()
self.login(username, password)
示例15: Administrator
class Administrator():
'''An automated Google Apps administrator.'''
def __init__(self, domain, username, password):
'''Create an administrator, then log in with the given credentials.'''
self.domain = domain
self.browser = Browser()
self.login(username, password)
def login(self, username, password):
'''Log in with the given username and password.'''
self.browser.open('https://www.google.com/a/%s/ServiceLogin'
% self.domain)
form = self.browser.getForm(id='gaia_loginform')
# domain is automatically added
form.getControl(name='Email').value = username
form.getControl(name='Passwd').value = password
form.submit()
def go_to_group(self, group):
'''Open the groups's page.'''
self.browser.open('https://www.google.com/a/cpanel/%s/Group?groupId=%s'
% (self.domain, group))
def users_in_group(self, group):
'''Return the set of users in the group.'''
self.go_to_group(group)
# Add all users in the current (first page).
users = emails_in_html(self.browser.contents)
try:
# Go to next pages and add all of them.
while True:
self.browser.getLink(text='Next').click()
users.update(emails_in_html(self.browser.contents))
except LinkNotFoundError:
pass
return users
def add_users_to_group(self, users, group):
'''Add the users to the group.'''
unique_users = set(users)
current_users = self.users_in_group(group)
new_users = unique_users - current_users
self.go_to_group(group)
for chunk in split_users(new_users):
form = self.browser.getForm(id='addmember')
form.getControl(name='members').value = ','.join(chunk)
# Click this button to submit the form
form.getControl(name='add').click()
def remove_users_from_group(self, users, group):
'''Remove the users from the group.'''
unique_users = set(users)
self.go_to_group(group)
tree = html.fromstring(self.browser.contents)
form = self.browser.getForm(id='list')
for hidden_input in tree.cssselect('form#list td input[type="hidden"]'):
print 'checking', hidden_input.value
if hidden_input.value in unique_users:
print 'removing', hidden_input.value
checkbox = form.getControl(name=hidden_input.getnext().name)
print checkbox.mech_control
print 'submitting'
form.getControl(name='remove', index=0).click()