diff options
Diffstat (limited to 'catapult/telemetry/telemetry/internal/actions/navigate.py')
-rw-r--r-- | catapult/telemetry/telemetry/internal/actions/navigate.py | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/catapult/telemetry/telemetry/internal/actions/navigate.py b/catapult/telemetry/telemetry/internal/actions/navigate.py new file mode 100644 index 00000000..c2a81fdc --- /dev/null +++ b/catapult/telemetry/telemetry/internal/actions/navigate.py @@ -0,0 +1,30 @@ +# 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=60): + super(NavigateAction, self).__init__() + assert url, 'Must specify url for navigate action' + self._url = url + self._script_to_evaluate_on_commit = script_to_evaluate_on_commit + self._timeout_in_seconds = timeout_in_seconds + + def RunAction(self, tab): + start_time = time.time() + tab.Navigate(self._url, + self._script_to_evaluate_on_commit, + self._timeout_in_seconds) + + time_left_in_seconds = (start_time + self._timeout_in_seconds + - time.time()) + time_left_in_seconds = max(0, time_left_in_seconds) + tab.WaitForDocumentReadyStateToBeInteractiveOrBetter( + time_left_in_seconds) + tab.WaitForFrameToBeDisplayed() |