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

Unified Diff: tools/telemetry/telemetry/page/actions/play.py

Issue 346923003: Add ActionRunner wrapper for the remaining less used actions (try 2): (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Update unit test to skip test if touch is not supported. Created 6 years, 5 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
Index: tools/telemetry/telemetry/page/actions/play.py
diff --git a/tools/telemetry/telemetry/page/actions/play.py b/tools/telemetry/telemetry/page/actions/play.py
index 7fd33a76b572cddfc0f1134a2c709482541ddbce..76fc91326e9c84a8e05b81c91a3e15a98ff97e30 100644
--- a/tools/telemetry/telemetry/page/actions/play.py
+++ b/tools/telemetry/telemetry/page/actions/play.py
@@ -4,12 +4,13 @@
"""A Telemetry page_action that performs the "play" action on media elements.
-Media elements can be specified by a selector attribute. If no selector is
+Media elements can be specified by a selector argument. If no selector is
defined then then the action attempts to play the first video element or audio
element on the page. A selector can also be 'all' to play all media elements.
-Other attributes to use are: wait_for_playing and wait_for_ended, which forces
-the action to wait until playing and ended events get fired respectively.
+Other arguments to use are: playing_event_timeout_in_seconds and
+ended_event_timeout_in_seconds, which forces the action to wait until
+playing and ended events get fired respectively.
"""
from telemetry.core import exceptions
@@ -18,8 +19,13 @@ from telemetry.page.actions import page_action
class PlayAction(media_action.MediaAction):
- def __init__(self, attributes=None):
- super(PlayAction, self).__init__(attributes)
+ def __init__(self, selector=None,
+ playing_event_timeout_in_seconds=0,
+ ended_event_timeout_in_seconds=0):
+ super(PlayAction, self).__init__()
+ self._selector = selector if selector else ''
+ self._playing_event_timeout_in_seconds = playing_event_timeout_in_seconds
+ self._ended_event_timeout_in_seconds = ended_event_timeout_in_seconds
def WillRunAction(self, tab):
"""Load the media metrics JS code prior to running the action."""
@@ -28,16 +34,15 @@ class PlayAction(media_action.MediaAction):
def RunAction(self, tab):
try:
- selector = self.selector if hasattr(self, 'selector') else ''
- tab.ExecuteJavaScript('window.__playMedia("%s");' % selector)
- timeout_in_seconds = (self.wait_timeout_in_seconds
- if hasattr(self, 'wait_timeout_in_seconds') else 60)
+ tab.ExecuteJavaScript('window.__playMedia("%s");' % self._selector)
# Check if we need to wait for 'playing' event to fire.
- if hasattr(self, 'wait_for_playing') and self.wait_for_playing:
- self.WaitForEvent(tab, selector, 'playing', timeout_in_seconds)
+ if self._playing_event_timeout_in_seconds > 0:
+ self.WaitForEvent(tab, self._selector, 'playing',
+ self._playing_event_timeout_in_seconds)
# Check if we need to wait for 'ended' event to fire.
- if hasattr(self, 'wait_for_ended') and self.wait_for_ended:
- self.WaitForEvent(tab, selector, 'ended', timeout_in_seconds)
+ if self._ended_event_timeout_in_seconds > 0:
+ self.WaitForEvent(tab, self._selector, 'ended',
+ self._ended_event_timeout_in_seconds)
except exceptions.EvaluateException:
raise page_action.PageActionFailed('Cannot play media element(s) with '
- 'selector = %s.' % selector)
+ 'selector = %s.' % self._selector)
« no previous file with comments | « tools/telemetry/telemetry/page/actions/pinch_unittest.py ('k') | tools/telemetry/telemetry/page/actions/play_unittest.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698