@@ -247,7 +247,7 @@ class SeleniumTestCaseBase(unittest.TestCase):
Wait(self.driver, timeout=timeout).until(is_clickable, msg)
return self.find(selector)
- def wait_until_element_clickable(self, finder, timeout=Wait._TIMEOUT):
+ def wait_until_finder_clickable(self, finder, timeout=Wait._TIMEOUT):
""" Wait until element is clickable """
WebDriverWait(self.driver, timeout=timeout).until(lambda driver: self.driver.execute_script("return jQuery.active == 0"))
is_clickable = lambda driver: (finder(driver).is_displayed() and finder(driver).is_enabled())
@@ -93,7 +93,7 @@ class TestProjectPageBase(SeleniumFunctionalTestCase):
):
# Check edit column
finder = lambda driver: self.find(f'#{edit_btn_id}')
- edit_column = self.wait_until_element_clickable(finder)
+ edit_column = self.wait_until_finder_clickable(finder)
self.assertTrue(edit_column.is_displayed())
edit_column.click()
# Check dropdown is visible
@@ -282,7 +282,7 @@ class TestProjectPage(TestProjectPageBase):
# click on "Edit" icon button
self.wait_until_visible('#project-name-container')
finder = lambda driver: self.find('#project-change-form-toggle')
- edit_button = self.wait_until_element_clickable(finder)
+ edit_button = self.wait_until_finder_clickable(finder)
edit_button.click()
project_name_input = self.find('#project-name-change-input')
self.assertTrue(project_name_input.is_displayed())
@@ -394,7 +394,7 @@ class TestProjectPage(TestProjectPageBase):
)
# check "build recipe" button works
finder = lambda driver: self.find_all('#softwarerecipestable tbody tr')[0].find_element(By.XPATH, '//td[@class="add-del-layers"]/a')
- build_btn = self.wait_until_element_clickable(finder)
+ build_btn = self.wait_until_finder_clickable(finder)
build_btn.click()
build_state = wait_until_build(self, 'queued cloning starting parsing failed')
lastest_builds = self.driver.find_elements(
@@ -405,7 +405,7 @@ class TestProjectPage(TestProjectPageBase):
# Find the latest builds, the last build and then the cancel button
finder = lambda driver: driver.find_elements(By.XPATH, '//div[@id="latest-builds"]/div')[0].find_element(By.XPATH, '//span[@class="cancel-build-btn pull-right alert-link"]')
- cancel_button = self.wait_until_element_clickable(finder)
+ cancel_button = self.wait_until_finder_clickable(finder)
cancel_button.click()
if 'starting' not in build_state: # change build state when cancelled in starting state
wait_until_build_cancelled(self)
@@ -453,7 +453,7 @@ class TestProjectPage(TestProjectPageBase):
)
# check "Select machine" button works
finder = lambda driver: self.find_all('#machinestable tbody tr')[0].find_element(By.XPATH, '//td[@class="add-del-layers"]')
- select_btn = self.wait_until_element_clickable(finder)
+ select_btn = self.wait_until_finder_clickable(finder)
select_btn.click()
self.wait_until_visible('#project-machine-name')
project_machine_name = self.find('#project-machine-name')
@@ -473,7 +473,7 @@ class TestProjectPage(TestProjectPageBase):
self.wait_until_visible('#machinestable tbody tr')
# Locate a machine to add button
finder = lambda driver: self.find_all('#machinestable tbody tr')[0].find_element(By.XPATH, '//td[@class="add-del-layers"]')
- add_btn = self.wait_until_element_clickable(finder)
+ add_btn = self.wait_until_finder_clickable(finder)
add_btn.click()
self.wait_until_visible('#change-notification')
change_notification = self.find('#change-notification')
@@ -482,7 +482,7 @@ class TestProjectPage(TestProjectPageBase):
)
finder = lambda driver: self.find('#hide-alert')
- hide_button = self.wait_until_element_clickable(finder)
+ hide_button = self.wait_until_finder_clickable(finder)
hide_button.click()
self.wait_until_not_visible('#change-notification')
@@ -528,14 +528,14 @@ class TestProjectPage(TestProjectPageBase):
# check "Add layer" button works
self.wait_until_visible('#layerstable tbody tr')
finder = lambda driver: self.find_all('#layerstable tbody tr')[0].find_element(By.XPATH, '//td[@class="add-del-layers"]/a[@data-directive="add"]')
- add_btn = self.wait_until_element_clickable(finder)
+ add_btn = self.wait_until_finder_clickable(finder)
add_btn.click()
# check modal is displayed
self.wait_until_visible('#dependencies-modal')
list_dependencies = self.find_all('#dependencies-list li')
# click on add-layers button
finder = lambda driver: self.driver.find_element(By.XPATH, '//form[@id="dependencies-modal-form"]//button[@class="btn btn-primary"]')
- add_layers_btn = self.wait_until_element_clickable(finder)
+ add_layers_btn = self.wait_until_finder_clickable(finder)
add_layers_btn.click()
self.wait_until_visible('#change-notification')
change_notification = self.find('#change-notification')
@@ -544,14 +544,14 @@ class TestProjectPage(TestProjectPageBase):
)
finder = lambda driver: self.find('#hide-alert')
- hide_button = self.wait_until_element_clickable(finder)
+ hide_button = self.wait_until_finder_clickable(finder)
hide_button.click()
self.wait_until_not_visible('#change-notification')
# check "Remove layer" button works
self.wait_until_visible('#layerstable tbody tr')
finder = lambda driver: self.find_all('#layerstable tbody tr')[0].find_element(By.XPATH, '//td[@class="add-del-layers"]/a[@data-directive="remove"]')
- remove_btn = self.wait_until_element_clickable(finder)
+ remove_btn = self.wait_until_finder_clickable(finder)
remove_btn.click()
self.wait_until_visible('#change-notification')
change_notification = self.find('#change-notification')
@@ -560,7 +560,7 @@ class TestProjectPage(TestProjectPageBase):
)
finder = lambda driver: self.find('#hide-alert')
- hide_button = self.wait_until_element_clickable(finder)
+ hide_button = self.wait_until_finder_clickable(finder)
hide_button.click()
self.wait_until_not_visible('#change-notification')
@@ -606,7 +606,7 @@ class TestProjectPage(TestProjectPageBase):
# check "Add distro" button works
self.wait_until_visible(".add-del-layers")
finder = lambda driver: self.find_all('#distrostable tbody tr')[0].find_element(By.XPATH, '//td[@class="add-del-layers"]')
- add_btn = self.wait_until_element_clickable(finder)
+ add_btn = self.wait_until_finder_clickable(finder)
add_btn.click()
self.wait_until_visible('#change-notification')
change_notification = self.find('#change-notification')
@@ -652,7 +652,7 @@ class TestProjectPage(TestProjectPageBase):
# check remove layer button works
finder = lambda driver: self.find('#add-remove-layer-btn')
- remove_layer_btn = self.wait_until_element_clickable(finder)
+ remove_layer_btn = self.wait_until_finder_clickable(finder)
remove_layer_btn.click()
self.wait_until_visible('#change-notification')
change_notification = self.find('#change-notification')
@@ -660,12 +660,12 @@ class TestProjectPage(TestProjectPageBase):
f'You have removed 1 layer from your project', str(change_notification.text)
)
finder = lambda driver: self.find('#hide-alert')
- hide_button = self.wait_until_element_clickable(finder)
+ hide_button = self.wait_until_finder_clickable(finder)
hide_button.click()
# check add layer button works
self.wait_until_not_visible('#change-notification')
finder = lambda driver: self.find('#add-remove-layer-btn')
- add_layer_btn = self.wait_until_element_clickable(finder)
+ add_layer_btn = self.wait_until_finder_clickable(finder)
add_layer_btn.click()
self.wait_until_visible('#change-notification')
change_notification = self.find('#change-notification')
@@ -673,7 +673,7 @@ class TestProjectPage(TestProjectPageBase):
f'You have added 1 layer to your project', str(change_notification.text)
)
finder = lambda driver: self.find('#hide-alert')
- hide_button = self.wait_until_element_clickable(finder)
+ hide_button = self.wait_until_finder_clickable(finder)
hide_button.click()
self.wait_until_not_visible('#change-notification')
# check tabs(layers, recipes, machines) are displayed
@@ -330,7 +330,7 @@ class TestProjectConfigTab(TestProjectConfigTabBase):
self.wait_until_visible('#layer-container > form > div > span > div')
self.wait_until_visible('.dropdown-menu')
finder = lambda driver: driver.find_element(By.XPATH, '//*[@id="layer-container"]/form/div/span/div/div/div')
- dropdown_item = self.wait_until_element_clickable(finder)
+ dropdown_item = self.wait_until_finder_clickable(finder)
dropdown_item.click()
self.wait_until_clickable('#add-layer-btn')
add_layer_btn = layers.find_element(By.ID, 'add-layer-btn')
We want a version of the function which accepts elements but we need to fix the naming of the finder variant first to stop things getting too consfusing. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> --- .../tests/browser/selenium_helpers_base.py | 2 +- .../tests/functional/test_project_page.py | 34 +++++++++---------- .../test_project_page_tab_config.py | 2 +- 3 files changed, 19 insertions(+), 19 deletions(-)