Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(43)

Unified Diff: tools/perf/page_sets/gmail_alt_threadlist_conversation.py

Issue 323833003: Create ActionRunner wrapper API over TapAction and ClickElementAction. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebasing to head. Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « tools/perf/page_sets/calendar_forward_backward.py ('k') | tools/perf/page_sets/gmail_alt_two_labels.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/perf/page_sets/gmail_alt_threadlist_conversation.py
diff --git a/tools/perf/page_sets/gmail_alt_threadlist_conversation.py b/tools/perf/page_sets/gmail_alt_threadlist_conversation.py
index 5e1c53641c29e6d99032e88cfee393f825418595..7630c5af5da2ccacdf8d1fa99693e95354128c25 100644
--- a/tools/perf/page_sets/gmail_alt_threadlist_conversation.py
+++ b/tools/perf/page_sets/gmail_alt_threadlist_conversation.py
@@ -1,12 +1,33 @@
# Copyright 2014 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 re
+
# pylint: disable=W0401,W0614
from telemetry.page.actions.all_page_actions import *
from telemetry.page import page as page_module
from telemetry.page import page_set as page_set_module
+def _CreateXpathFunction(xpath):
+ return ('document.evaluate("%s",'
+ 'document,'
+ 'null,'
+ 'XPathResult.FIRST_ORDERED_NODE_TYPE,'
+ 'null)'
+ '.singleNodeValue' % re.escape(xpath))
+
+
+def _GetCurrentLocation(action_runner):
+ return action_runner.EvaluateJavaScript('document.location.href')
+
+
+def _WaitForLocationChange(action_runner, old_href):
+ action_runner.WaitForJavaScriptCondition(
+ 'document.location.href != "%s"' % old_href)
+
+
class GmailAltThreadlistConversationPage(
page_module.Page):
@@ -29,17 +50,15 @@ class GmailAltThreadlistConversationPage(
'document.getElementById("gb") !== null')
def RunEndure(self, action_runner):
- action_runner.RunAction(ClickElementAction(
- {
- 'xpath': '//span[@email]',
- 'wait_until': {'condition': 'href_change'}
- }))
+ old_href = _GetCurrentLocation(action_runner)
+ action_runner.ClickElement(
+ element_function=_CreateXpathFunction('//span[@email]'))
+ _WaitForLocationChange(action_runner, old_href)
action_runner.Wait(1)
- action_runner.RunAction(ClickElementAction(
- {
- 'wait_until': {'condition': 'href_change'},
- 'selector': 'a[href="https://mail.google.com/mail/u/0/?shva=1#inbox"]'
- }))
+ old_href = _GetCurrentLocation(action_runner)
+ action_runner.ClickElement(
+ 'a[href="https://mail.google.com/mail/u/0/?shva=1#inbox"]')
+ _WaitForLocationChange(action_runner, old_href)
action_runner.Wait(1)
« no previous file with comments | « tools/perf/page_sets/calendar_forward_backward.py ('k') | tools/perf/page_sets/gmail_alt_two_labels.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698