Wait for the Tools menu to be populated when running the feature tests, instead of failing.

Fix by Khushboo, based on Harshal's previous work.
This commit is contained in:
Khushboo Vashi 2017-06-23 14:07:31 +01:00 committed by Dave Page
parent 92b1b1365e
commit 6b6d3369b3
4 changed files with 29 additions and 8 deletions

View File

@ -102,9 +102,7 @@ class PGDataypeFeatureTest(BaseFeatureTest):
r'\336\255\276\357', r'{"\\336\\255\\276\\357","\\336\\255\\276\\357"}'
]
self.page.driver.find_element_by_link_text("Tools").click()
self.page.find_by_partial_link_text("Query Tool").click()
self.page.open_query_tool()
self.page.fill_codemirror_area_with(query)
self.page.find_by_id("btn-flash").click()
wait = WebDriverWait(self.page.driver, 5)

View File

@ -87,10 +87,7 @@ class QueryToolJourneyTest(BaseFeatureTest):
self.page.toggle_open_tree_item(self.server['name'])
self.page.toggle_open_tree_item('Databases')
self.page.toggle_open_tree_item('acceptance_test_db')
time.sleep(5)
self.page.find_by_partial_link_text("Tools").click()
self.page.find_by_partial_link_text("Query Tool").click()
self.page.click_tab('Query -')
self.page.open_query_tool()
time.sleep(5)
def _execute_query(self, query):

View File

@ -95,7 +95,6 @@ CREATE TABLE public.defaults
self.page.wait_for_spinner_to_disappear()
self.page.add_server(self.server)
self._tables_node_expandable()
self.driver.switch_to.default_content()
self.page.select_tree_item('defaults')
# Open Object -> View data
self._view_data_grid()

View File

@ -62,6 +62,33 @@ class PgadminPage:
self.find_by_xpath("//*[@id='tree']//*[.='" + server_config['name'] + "']")
def open_query_tool(self):
self.driver.find_element_by_link_text("Tools").click()
tools_menu = self.driver.find_element_by_id('mnu_tools')
# Query Tool is first li
query_tool = tools_menu.find_element_by_tag_name('li')
self.enable_menu_item(query_tool, 10)
self.find_by_partial_link_text("Query Tool").click()
self.click_tab('Query -')
def enable_menu_item(self, menu_item, wait_time):
start_time = time.time()
# wait until menu becomes enabled.
while time.time() - start_time < wait_time: # wait_time seconds
# if menu is disabled then it will have
# two classes 'menu-item disabled'.
# And if menu is enabled the it will have
# only one class 'menu-item'.
if 'menu-item' == str(menu_item.get_attribute('class')):
break
time.sleep(0.1)
else:
assert False, "'Tools -> Query Tool' menu did not enable."
def close_query_tool(self):
self.driver.switch_to.default_content()
tab = self.find_by_xpath("//*[contains(@class,'wcPanelTab') and contains(.,'" + "Query" + "')]")