VulpesOS/gaia/tests/python/gaia-ui-tests/gaiatest/apps/search/app.py
OverSu b38dea0597 Publish Vulpes Preview 15 sources for desktop, Android and Tundra
Share Gaia assets and adapters, keep private profiles and development documents local, and update both public READMEs.
2026-09-30 23:13:03 +02:00

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)