Я пытаюсь найти элемент на странице и затем щелкнуть этот элемент с помощью этого кода:
def delete_button(self, app_name):
return self.wait.until(EC.element_to_be_clickable((By.XPATH, "//button[@action='delete']" % app_name)))
def delete_button_click(self, app_name):
self.add_step("Click on Delete Button")
return self.delete_button(app_name=app_name).click()
Вот ошибка
endtoendtests\nondevicestests\applications\test_role_operations_applications.py:199:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
..\pydashboardui\pages\ApplicationsPage.py:111: in delete_button_click
return self.delete_button(app_name=app_name).click()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <ApplicationsPage.ApplicationsPage object at 0x04BF6450>, app_name = 'Custom App Gulbrandsen'
def delete_button(self, app_name):
> return self.wait.until(EC.element_to_be_clickable((By.XPATH, "//button[@action='delete']" % app_name)))
E TypeError: not all arguments converted during string formatting
..\pydashboardui\pages\ApplicationsPage.py:107: TypeError
Я не понимаю, что яделать, чтобы вызвать это.
Вот полный тест, который вызывает эту функцию
@pytest.mark.parametrize('user_type', USER_TYPES_TO_TEST)
def test_user_roles_delete_applications(self, setup, user_type):
"""Verify user roles that can delete applications"""
log.info('test_user_roles_delete_applications')
self.ui.login(username=self.pyitbase.master_ta_user, password=self.pyitbase.master_ta_pwd)
self.ui.ta_home_page.navigate_to(page="applications")
time.sleep(1)
app1 = self.create_custom_application()[0]
self.ui.toast_message_element_click()
self.ui.ta_home_page.navigate_to(page="applications")
time.sleep(1)
app2 = self.create_custom_application()[0]
self.ui.toast_message_element_click()
user = self.pyitbase.create_new_user(user_type=user_type)[0]
self.ui.login(username=user['userName'], password=self.pyitbase.generic_pwd)
self.ui.ta_home_page.navigate_to("applications")
time.sleep(5)
Steps.add("Verify if user role {} can delete applications on manage tab".format(user_type))
if user_type not in self.ROLES_FOR_APPLICATIONS:
try:
self.ui.applications_page.delete_button_click(app_name=app1)
time.sleep(5)
assert False
except NoSuchElementException:
assert True
else:
self.ui.applications_page.delete_button_click(app_name=app1)
time.sleep(5)
self.ui.confirm_modal.confirm_button_click()
assert self.ui.verify_toaster(expected_text=self.ui.applications_page.SUCCESS_DELETE_APP.format(app1))
self.ui.toast_message_element_click()
self.ui.applications_page.app_name_link_click(app_name=app2)
time.sleep(5)
Steps.add("Verify if user role {} can delete applications on details page".format(user_type))
if user_type not in self.ROLES_FOR_APPLICATIONS:
try:
self.ui.applications_detail_page.delete_button_click()
time.sleep(.5)
assert False
except NoSuchElementException:
assert True
else:
self.ui.applications_detail_page.delete_button_click()
time.sleep(.5)
self.ui.confirm_modal.confirm_button_click()
assert self.ui.verify_toaster(expected_text=self.ui.applications_page.SUCCESS_DELETE_APP.format(app2))