blob: 955b7237fd6f79425b728ed2d759459300629d1c [file] [log] [blame]
# Copyright 2013 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.
import time
from telemetry.internal.actions import page_action
class NavigateAction(page_action.PageAction):
def __init__(self, url, script_to_evaluate_on_commit=None,
timeout_in_seconds=page_action.DEFAULT_TIMEOUT):
super(NavigateAction, self).__init__(timeout=timeout_in_seconds)
assert url, 'Must specify url for navigate action'
self._url = url
self._script_to_evaluate_on_commit = script_to_evaluate_on_commit
def RunAction(self, tab):
start_time = time.time()
tab.Navigate(self._url, self._script_to_evaluate_on_commit,
self.timeout)
time_left_in_seconds = (start_time + self.timeout - time.time())
time_left_in_seconds = max(0, time_left_in_seconds)
tab.WaitForDocumentReadyStateToBeInteractiveOrBetter(time_left_in_seconds)
tab.WaitForFrameToBeDisplayed()
def __str__(self):
return "%s(%s)" % (self.__class__.__name__, self._url)