blob: c4f81c4fc48fe98fef1a7f796b2caa29f65ecaec [file] [log] [blame]
# Copyright 2016 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
from page_sets.login_helpers import login_utils
def LoginAccount(action_runner, credential,
credentials_path=login_utils.DEFAULT_CREDENTIAL_PATH):
"""Logs in into a Dropbox account.
This function navigates the tab into Dropbox's login page and logs in a user
using credentials in |credential| part of the |credentials_path| file.
Args:
action_runner: Action runner responsible for running actions on the page.
credential: The credential to retrieve from the credentials file (string).
credentials_path: The path to credential file (string).
Raises:
exceptions.Error: See ExecuteJavaScript()
for a detailed list of possible exceptions.
"""
account_name, password = login_utils.GetAccountNameAndPassword(
credential, credentials_path=credentials_path)
action_runner.Navigate('https://www.dropbox.com/login')
login_utils.InputWithSelector(
action_runner, account_name, 'input[name=login_email]')
login_utils.InputWithSelector(
action_runner, password, 'input[name=login_password]')
# Wait until the "Sign in" button is enabled and then click it.
login_button_selector = '.login-form .login-button'
action_runner.WaitForJavaScriptCondition('''
(function() {
var loginButton = document.querySelector({{ selector }});
if (!loginButton)
return false;
return !loginButton.disabled;
})();''',
selector=login_button_selector)
action_runner.ClickElement(selector=login_button_selector)
action_runner.WaitForNavigate()