def driver(base_url, osinfo, browserinfo):
ostype, os_version = osinfo
browser, browser_version = browserinfo
buildid = '{0}_{1}_{2}_{3}'.format(ostype.lower().replace(' ', '_'),
os_version.lower().replace(' ', '_'), browser, browser_version)
# skip some combinations
if os_version == 'Sierra' and browser == 'safari' and browser_version == '9.1':
pytest.skip('cannot have Sierra running safari 9.1')
elif os_version == 'El Capitan' and browser == 'safari' and browser_version == '10':
pytest.skip('cannot have El Capitan running safari 10')
# set driver
if browserstack:
username = os.environ.get('BROWSERSTACK_USER', None)
access = os.environ.get('BROWSERSTACK_ACCESS_KEY', None)
desired_cap = {'os': ostype, 'os_version': os_version, 'browser': browser, 'build': buildid,
'browser_version': browser_version, 'project': 'marvin', 'resolution': '1920x1080'}
desired_cap['browserstack.local'] = True
desired_cap['browserstack.debug'] = True
desired_cap['browserstack.localIdentifier'] = os.environ['BROWSERSTACK_LOCAL_IDENTIFIER']
driver = webdriver.Remote(
command_executor='http://{0}:{1}@hub.browserstack.com:80/wd/hub'.format(username, access),
desired_capabilities=desired_cap)
else:
if browser == 'chrome':
driver = webdriver.Chrome()
elif browser == 'firefox':
driver = webdriver.Firefox()
elif browser == 'safari':
driver = webdriver.Safari()
driver.get(base_url)
yield driver
# teardown
driver.quit()
评论列表
文章目录