本文整理汇总了Python中zope.testbrowser.browser.Browser.getLink方法的典型用法代码示例。如果您正苦于以下问题:Python Browser.getLink方法的具体用法?Python Browser.getLink怎么用?Python Browser.getLink使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类zope.testbrowser.browser.Browser
的用法示例。
在下文中一共展示了Browser.getLink方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: _getPadsPage
# 需要导入模块: from zope.testbrowser.browser import Browser [as 别名]
# 或者: from zope.testbrowser.browser.Browser import getLink [as 别名]
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)
示例2: fetch_data
# 需要导入模块: from zope.testbrowser.browser import Browser [as 别名]
# 或者: from zope.testbrowser.browser.Browser import getLink [as 别名]
def fetch_data(self):
url, username, password = self._url, self._username, self._password
login_url = '/tutos/php/bookinginserter/login.php'
showteamhours_url = '/tutos/php/bookinginserter/showteamhours.php'
browser = Browser(url)
browser.getControl(name='username').value = username
browser.getControl(name='password').value = password
browser.getForm(action=login_url).submit()
browser.getLink(url='showteamhours.php').click()
start_date_value = browser.getControl(name='startdate').options[0]
browser.getControl(name='startdate').value = [start_date_value]
end_date_value = browser.getControl(name='enddate').options[-1]
browser.getControl(name='enddate').value = [end_date_value]
browser.getForm(action=showteamhours_url).submit()
self._from_date = start_date_value
self._to_date = end_date_value
self._data = browser.contents
示例3: __init__
# 需要导入模块: from zope.testbrowser.browser import Browser [as 别名]
# 或者: from zope.testbrowser.browser.Browser import getLink [as 别名]
#.........这里部分代码省略.........
"""
if not os.path.exists(os.path.join(self.path, self.fname)):
return True
return False
def need_unzip(self):
"""
@return: True if zip extract needed
"""
if not os.path.exists(os.path.join(self.api_path, "api.py")):
return True
return False
def download_zip(self):
import urllib2
self.browser.open("http://deviceatlas.com/getAPI/python")
assert self.browser.headers["Content-Type"] == "application/zip" # Check that we fetch the correct file
assert len(self.browser.contents) > 0, "Could not download da.zip API distribution"
o = open(os.path.join(self.path, self.fname), "wb")
o.write(self.browser.contents)
o.close()
def unzip_file_into_dir(self, file, dir, override_name=None):
import zipfile
if not os.path.exists(dir):
os.mkdir(dir)
zfobj = zipfile.ZipFile(file)
for name in zfobj.namelist():
if name.endswith('/'):
os.mkdir(os.path.join(dir, name))
else:
if override_name:
# Set extracted file name
fname = override_name
else:
fname = name
outfile = open(os.path.join(dir, fname), 'wb')
outfile.write(zfobj.read(name))
outfile.close()
def need_database(self):
if not os.path.exists(self.raw_json):
return True
return False
def download_database(self):
self.browser.open("http://deviceatlas.com")
self.browser.getLink("My account").click()
# Assume Community ZIP link
self.browser.getLink(url="/zip", index=0).click()
# Check that we fetch the correct file
assert self.browser.headers["Content-Type"] == "application/zip", "Assume zip content:" + str(self.browser.headers)
o = open(os.path.join(self.path, self.json_file), "wb")
o.write(self.browser.contents)
o.close()
def proceed(self):
""" Download & unzip DA Python API files if needed.
@return: Path to Downloaded DeviceAtlas JSON data file
"""
if self.need_download():
self.login()
self.download_zip()
if self.need_unzip():
self.unzip_file_into_dir(os.path.join(self.path, self.fname), self.api_path)
# create __init__.py to mark the module
f = open(os.path.join(self.api_path, "__init__.py"), "wt")
f.write("# This package is automatically generated by DAAPIInstaller")
f.close()
if self.need_database():
self.login()
self.download_database()
self.unzip_file_into_dir(os.path.join(self.path, self.json_file), self.path, "data.json")
return self.raw_json
示例4: Administrator
# 需要导入模块: from zope.testbrowser.browser import Browser [as 别名]
# 或者: from zope.testbrowser.browser.Browser import getLink [as 别名]
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()