Share Gaia assets and adapters, keep private profiles and development documents local, and update both public READMEs.
47 lines
2 KiB
Python
Executable file
47 lines
2 KiB
Python
Executable file
# This Source Code Form is subject to the terms of the Mozilla Public
|
|
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
|
|
from gaiatest.apps.base import Base
|
|
from marionette_driver import expected, By, Wait
|
|
|
|
|
|
class Search(Base):
|
|
|
|
name = 'Browser'
|
|
|
|
_browser_app_locator = (By.CSS_SELECTOR, 'div[data-manifest-name="Browser"][transition-state="opened"]')
|
|
_url_bar_locator = (By.CSS_SELECTOR, 'div.search-app .urlbar .title')
|
|
_history_locator = (By.ID, 'history')
|
|
_history_item_locator = (By.CSS_SELECTOR, '#history .result')
|
|
|
|
def switch_to_content(self):
|
|
web_frame = self.marionette.find_element(*self._browser_app_locator)
|
|
self.marionette.switch_to_frame(web_frame)
|
|
|
|
def switch_to_chrome(self):
|
|
self.marionette.switch_to_frame()
|
|
|
|
def go_to_url(self, url):
|
|
# The URL bar shown is actually in the system app not in this Search app.
|
|
# We switch back to the system app, then tap the panel, but this will only
|
|
# work from Search app which embiggens the input bar
|
|
self.marionette.switch_to_frame()
|
|
if self.is_element_present(*self._url_bar_locator):
|
|
self.marionette.find_element(*self._url_bar_locator).tap()
|
|
else:
|
|
self._url_bar_locator = (By.CSS_SELECTOR, '.urlbar .title')
|
|
self._root_element = self.marionette.find_element(*self._browser_app_locator)
|
|
self._root_element.find_element(*self._url_bar_locator).tap()
|
|
|
|
from gaiatest.apps.system.regions.search_panel import SearchPanel
|
|
search_panel = SearchPanel(self.marionette)
|
|
return search_panel.go_to_url(url)
|
|
|
|
@property
|
|
def history_items_count(self):
|
|
Wait(self.marionette).until(expected.element_present(*self._history_locator))
|
|
return len(self.marionette.find_elements(*self._history_item_locator))
|
|
|
|
def wait_for_history_to_load(self, number_of_items=1):
|
|
Wait(self.marionette).until(lambda m: self.history_items_count == number_of_items)
|