本文整理汇总了Python中gaiatest.GaiaApps.switch_to_displayed_app方法的典型用法代码示例。如果您正苦于以下问题:Python GaiaApps.switch_to_displayed_app方法的具体用法?Python GaiaApps.switch_to_displayed_app怎么用?Python GaiaApps.switch_to_displayed_app使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类gaiatest.GaiaApps
的用法示例。
在下文中一共展示了GaiaApps.switch_to_displayed_app方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: Base
# 需要导入模块: from gaiatest import GaiaApps [as 别名]
# 或者: from gaiatest.GaiaApps import switch_to_displayed_app [as 别名]
class Base(object):
def __init__(self, marionette):
self.marionette = marionette
self.apps = GaiaApps(self.marionette)
self.accessibility = Accessibility(self.marionette)
self.frame = None
self.manifest_url = hasattr(self, 'manifest_url') and self.manifest_url or None
self.entry_point = hasattr(self, 'entry_point') and self.entry_point or None
def launch(self, launch_timeout=None):
self.app = self.apps.launch(self.name, self.manifest_url, self.entry_point, launch_timeout=launch_timeout)
def is_element_present(self, by, locator):
self.marionette.set_search_timeout(0)
try:
self.marionette.find_element(by, locator)
return True
except NoSuchElementException:
return False
finally:
self.marionette.set_search_timeout(self.marionette.timeout or 10000)
def is_element_displayed(self, by, locator):
self.marionette.set_search_timeout(0)
try:
return self.marionette.find_element(by, locator).is_displayed()
except NoSuchElementException:
return False
finally:
self.marionette.set_search_timeout(self.marionette.timeout or 10000)
def find_select_item(self, match_string):
_list_item_locator = (
By.XPATH, "//section[contains(@class,'value-selector-container')]/descendant::li[descendant::span[.='%s']]" %
match_string)
# have to go back to top level to get the B2G select box wrapper
self.marionette.switch_to_frame()
# TODO we should find something suitable to wait for, but this goes too
# fast against desktop builds causing intermittent failures
time.sleep(0.2)
li = Wait(self.marionette).until(expected.element_present(*_list_item_locator))
# We need to keep this because the Ok button may hang over the element and stop
# Marionette from scrolling the element entirely into view
self.marionette.execute_script(
'arguments[0].scrollIntoView(false);', [li])
return li
def wait_for_select_closed(self, by, locator):
Wait(self.marionette).until(expected.element_not_displayed(by, locator))
# now back to app
self.apps.switch_to_displayed_app()
# TODO we should find something suitable to wait for, but this goes too
# fast against desktop builds causing intermittent failures
# This sleep is necessary to make sure the select is completely faded out,
# see bug 1148154
time.sleep(1)
def select(self, match_string, tap_close=True):
# cheeky Select wrapper until Marionette has its own
# due to the way B2G wraps the app's select box we match on text
_close_button_locator = (By.CSS_SELECTOR, 'button.value-option-confirm')
li = self.find_select_item(match_string)
li.tap()
# Tap close and wait for it to hide
if tap_close:
self.marionette.find_element(*_close_button_locator).tap()
self.wait_for_select_closed(*_close_button_locator)
def a11y_select(self, match_string):
# Accessibility specific select method
_close_button_locator = (By.CSS_SELECTOR, 'button.value-option-confirm')
li = self.find_select_item(match_string)
self.accessibility.click(li)
# A11y click close and wait for it to hide
self.accessibility.click(self.marionette.find_element(*_close_button_locator))
self.wait_for_select_closed(*_close_button_locator)
def tap_element_from_system_app(self, element=None, add_statusbar_height=False, x=None, y=None): # Workaround for bug 1109213, where tapping on the button inside the app itself
# makes Marionette spew out NoSuchWindowException errors
cx = element.rect['x']
cy = element.rect['y']
cx += element.rect['width']//2 if x is None else x
cy += element.rect['height']//2 if y is None else y
from gaiatest.apps.system.app import System
system = System(self.marionette)
if add_statusbar_height:
cy = cy + system.status_bar.height
system.tap(cx, cy)
@property
def keyboard(self):
#.........这里部分代码省略.........
示例2: Base
# 需要导入模块: from gaiatest import GaiaApps [as 别名]
# 或者: from gaiatest.GaiaApps import switch_to_displayed_app [as 别名]
#.........这里部分代码省略.........
break
else:
raise TimeoutException(
'Element %s still present after timeout' % locator)
def wait_for_element_displayed(self, by, locator, timeout=None):
timeout = timeout or (self.marionette.timeout and self.marionette.timeout / 1000) or 30
end_time = float(timeout) + time.time()
e = None
while time.time() < end_time:
time.sleep(0.5)
try:
if self.marionette.find_element(by, locator).is_displayed():
break
except (NoSuchElementException, StaleElementException, ElementNotVisibleException) as e:
pass
else:
if isinstance(e, NoSuchElementException):
raise TimeoutException('Element %s not present before timeout' % locator)
else:
raise TimeoutException('Element %s present but not displayed before timeout' % locator)
def wait_for_element_not_displayed(self, by, locator, timeout=None):
timeout = timeout or (self.marionette.timeout and self.marionette.timeout / 1000) or 30
end_time = float(timeout) + time.time()
while time.time() < end_time:
time.sleep(0.5)
try:
if not self.marionette.find_element(by, locator).is_displayed():
break
except StaleElementException:
pass
except NoSuchElementException:
break
else:
raise TimeoutException(
'Element %s still visible after timeout' % locator)
def wait_for_condition(self, method, timeout=None, message="Condition timed out"):
"""Calls the method provided with the driver as an argument until the return value is not False."""
timeout = timeout or (self.marionette.timeout and self.marionette.timeout / 1000) or 30
end_time = float(timeout) + time.time()
while time.time() < end_time:
try:
value = method(self.marionette)
if value:
return value
except (NoSuchElementException, StaleElementException):
pass
time.sleep(0.5)
else:
raise TimeoutException(message)
def is_element_present(self, by, locator):
self.marionette.set_search_timeout(0)
try:
self.marionette.find_element(by, locator)
return True
except NoSuchElementException:
return False
finally:
self.marionette.set_search_timeout(self.marionette.timeout or 10000)
def is_element_displayed(self, by, locator):
try:
return self.marionette.find_element(by, locator).is_displayed()
except (NoSuchElementException, ElementNotVisibleException):
return False
def select(self, match_string):
# cheeky Select wrapper until Marionette has its own
# due to the way B2G wraps the app's select box we match on text
_list_item_locator = (By.XPATH, "id('value-selector-container')/descendant::li[descendant::span[.='%s']]" % match_string)
_close_button_locator = (By.CSS_SELECTOR, 'button.value-option-confirm')
# have to go back to top level to get the B2G select box wrapper
self.marionette.switch_to_frame()
li = self.wait_for_element_present(*_list_item_locator)
# TODO Remove scrollintoView upon resolution of bug 877651
self.marionette.execute_script(
'arguments[0].scrollIntoView(false);', [li])
li.tap()
close_button = self.marionette.find_element(*_close_button_locator)
# Tap close and wait for it to hide
close_button.tap()
self.wait_for_element_not_displayed(*_close_button_locator)
# now back to app
self.apps.switch_to_displayed_app()
@property
def keyboard(self):
from gaiatest.apps.keyboard.app import Keyboard
return Keyboard(self.marionette)
示例3: Base
# 需要导入模块: from gaiatest import GaiaApps [as 别名]
# 或者: from gaiatest.GaiaApps import switch_to_displayed_app [as 别名]
class Base(object):
def __init__(self, marionette):
self.marionette = marionette
self.apps = GaiaApps(self.marionette)
self.accessibility = Accessibility(self.marionette)
self.frame = None
def launch(self, launch_timeout=None):
self.app = self.apps.launch(self.name, launch_timeout=launch_timeout)
def wait_for_element_present(self, by, locator, timeout=None):
return Wait(self.marionette, timeout, ignored_exceptions=NoSuchElementException).until(
lambda m: m.find_element(by, locator))
def wait_for_element_not_present(self, by, locator, timeout=None):
self.marionette.set_search_timeout(0)
try:
return Wait(self.marionette, timeout).until(
lambda m: not m.find_element(by, locator))
except NoSuchElementException:
pass
self.marionette.set_search_timeout(self.marionette.timeout or 10000)
def wait_for_element_displayed(self, by, locator, timeout=None):
Wait(self.marionette, timeout, ignored_exceptions=[NoSuchElementException, StaleElementException]).until(
lambda m: m.find_element(by, locator).is_displayed())
def wait_for_element_not_displayed(self, by, locator, timeout=None):
self.marionette.set_search_timeout(0)
try:
Wait(self.marionette, timeout, ignored_exceptions=StaleElementException).until(
lambda m: not m.find_element(by, locator).is_displayed())
except NoSuchElementException:
pass
self.marionette.set_search_timeout(self.marionette.timeout or 10000)
def wait_for_condition(self, method, timeout=None, message=None):
Wait(self.marionette, timeout).until(method, message=message)
def is_element_present(self, by, locator):
self.marionette.set_search_timeout(0)
try:
self.marionette.find_element(by, locator)
return True
except NoSuchElementException:
return False
finally:
self.marionette.set_search_timeout(self.marionette.timeout or 10000)
def is_element_displayed(self, by, locator):
self.marionette.set_search_timeout(0)
try:
return self.marionette.find_element(by, locator).is_displayed()
except NoSuchElementException:
return False
finally:
self.marionette.set_search_timeout(self.marionette.timeout or 10000)
def select(self, match_string):
# cheeky Select wrapper until Marionette has its own
# due to the way B2G wraps the app's select box we match on text
_list_item_locator = (By.XPATH, "id('value-selector-container')/descendant::li[descendant::span[.='%s']]" % match_string)
_close_button_locator = (By.CSS_SELECTOR, 'button.value-option-confirm')
# have to go back to top level to get the B2G select box wrapper
self.marionette.switch_to_frame()
# TODO we should find something suitable to wait for, but this goes too
# fast against desktop builds causing intermittent failures
time.sleep(0.2)
li = self.wait_for_element_present(*_list_item_locator)
# TODO Remove scrollintoView upon resolution of bug 877651
self.marionette.execute_script(
'arguments[0].scrollIntoView(false);', [li])
li.tap()
# Tap close and wait for it to hide
close_button = self.marionette.find_element(*_close_button_locator)
close_button.tap()
self.wait_for_element_not_displayed(*_close_button_locator)
# TODO we should find something suitable to wait for, but this goes too
# fast against desktop builds causing intermittent failures
time.sleep(0.2)
# now back to app
self.apps.switch_to_displayed_app()
@property
def keyboard(self):
from gaiatest.apps.keyboard.app import Keyboard
return Keyboard(self.marionette)
示例4: Base
# 需要导入模块: from gaiatest import GaiaApps [as 别名]
# 或者: from gaiatest.GaiaApps import switch_to_displayed_app [as 别名]
class Base(object):
def __init__(self, marionette):
self.marionette = marionette
self.apps = GaiaApps(self.marionette)
self.accessibility = Accessibility(self.marionette)
self.frame = None
self.manifest_url = hasattr(self, 'manifest_url') and self.manifest_url or None
self.entry_point = hasattr(self, 'entry_point') and self.entry_point or None
def launch(self, launch_timeout=None):
self.app = self.apps.launch(self.name, self.manifest_url, self.entry_point, launch_timeout=launch_timeout)
def wait_for_element_present(self, by, locator, timeout=None):
return Wait(self.marionette, timeout, ignored_exceptions=NoSuchElementException).until(
lambda m: m.find_element(by, locator))
def wait_for_element_not_present(self, by, locator, timeout=None):
self.marionette.set_search_timeout(0)
try:
return Wait(self.marionette, timeout).until(
lambda m: not m.find_element(by, locator))
except NoSuchElementException:
pass
self.marionette.set_search_timeout(self.marionette.timeout or 10000)
def wait_for_element_displayed(self, by, locator, timeout=None):
Wait(self.marionette, timeout, ignored_exceptions=[NoSuchElementException, StaleElementException]).until(
lambda m: m.find_element(by, locator).is_displayed())
def wait_for_element_not_displayed(self, by, locator, timeout=None):
self.marionette.set_search_timeout(0)
try:
Wait(self.marionette, timeout, ignored_exceptions=StaleElementException).until(
lambda m: not m.find_element(by, locator).is_displayed())
except NoSuchElementException:
pass
self.marionette.set_search_timeout(self.marionette.timeout or 10000)
def wait_for_condition(self, method, timeout=None, message=None):
Wait(self.marionette, timeout).until(method, message=message)
def is_element_present(self, by, locator):
self.marionette.set_search_timeout(0)
try:
self.marionette.find_element(by, locator)
return True
except NoSuchElementException:
return False
finally:
self.marionette.set_search_timeout(self.marionette.timeout or 10000)
def is_element_displayed(self, by, locator):
self.marionette.set_search_timeout(0)
try:
return self.marionette.find_element(by, locator).is_displayed()
except NoSuchElementException:
return False
finally:
self.marionette.set_search_timeout(self.marionette.timeout or 10000)
def find_select_item(self, match_string):
_list_item_locator = (
By.XPATH, "//section[contains(@class,'value-selector-container')]/descendant::li[descendant::span[.='%s']]" %
match_string)
# have to go back to top level to get the B2G select box wrapper
self.marionette.switch_to_frame()
# TODO we should find something suitable to wait for, but this goes too
# fast against desktop builds causing intermittent failures
time.sleep(0.2)
li = self.wait_for_element_present(*_list_item_locator)
# We need to keep this because the Ok button may hang over the element and stop
# Marionette from scrolling the element entirely into view
self.marionette.execute_script(
'arguments[0].scrollIntoView(false);', [li])
return li
def wait_for_select_closed(self, by, locator):
self.wait_for_element_not_displayed(by, locator)
# TODO we should find something suitable to wait for, but this goes too
# fast against desktop builds causing intermittent failures
time.sleep(0.2)
# now back to app
self.apps.switch_to_displayed_app()
def select(self, match_string):
# cheeky Select wrapper until Marionette has its own
# due to the way B2G wraps the app's select box we match on text
_close_button_locator = (By.CSS_SELECTOR, 'button.value-option-confirm')
li = self.find_select_item(match_string)
li.tap()
# Tap close and wait for it to hide
self.marionette.find_element(*_close_button_locator).tap()
self.wait_for_select_closed(*_close_button_locator)
#.........这里部分代码省略.........