update tests

This commit is contained in:
Jordan Blasenhauer 2024-02-28 09:38:29 +01:00
parent cbb32e7688
commit 83f425ddfe
6 changed files with 24 additions and 17 deletions

View file

@ -24,12 +24,10 @@ try:
assert_button_click(DRIVER, "//button[@data-tab-handler='password']")
assert_button_click(DRIVER, "//button[@data-tab-handler='totp']")
log_info("Looking that all mobile tabs are working ...")
log_info("Looking that all mobile tabs are working programmatically ...")
assert_button_click(DRIVER, "//button[@data-tab-handler-mobile='global']")
assert_button_click(DRIVER, "//button[@data-tab-handler-mobile='username']")
assert_button_click(DRIVER, "//button[@data-tab-handler-mobile='password']")
assert_button_click(DRIVER, "//button[@data-tab-handler-mobile='totp']")
DRIVER.execute_script(f"""document.querySelector('button[data-tab-handler-mobile="username"]').click()""")
DRIVER.execute_script(f"""document.querySelector('button[data-tab-handler-mobile="global"]').click()""")
log_info("Start username tab ...")

View file

@ -120,7 +120,7 @@ location /hello {
assert_button_click(DRIVER, "//div[@data-configs-element='server-http' and @data-_type='folder']")
assert_button_click(DRIVER, "//div[@data-path='/etc/bunkerweb/configs/server-http/app1.example.com' and @data-_type='folder']")
assert_button_click(DRIVER, "//li[@data-configs-add-file='']/button")
assert_button_click(DRIVER, "//button[@data-configs-add-file='']")
configs_modal_path_input = safe_get_element(DRIVER, By.XPATH, "//div[@data-configs-modal-path='']/input")
assert isinstance(configs_modal_path_input, WebElement), "The path input is not an instance of WebElement"

View file

@ -15,6 +15,11 @@ try:
log_info("Navigating to the global config page ...")
access_page(DRIVER, "/html/body/aside[1]/div[1]/div[3]/ul/li[3]/a", "global config")
log_info("Looking that tabs are working programmatically ...")
DRIVER.execute_script(f"""document.querySelector('button[data-tab-handler-mobile="blacklist"]').click()""")
DRIVER.execute_script(f"""document.querySelector('button[data-tab-handler="general"]').click()""")
log_info("Trying filters ...")
# Set keyword with no matching settings

View file

@ -37,7 +37,7 @@ try:
log_error("No reports found, exiting ...")
exit(1)
log_info("Trying to filter the reports ...")
log_info("Reports found, trying to filter the reports ...")
# Test select filters
select_filters = [

View file

@ -271,6 +271,8 @@ try:
log_error(f"The service hasn't been created ({len(services)} services found), exiting ...")
exit(1)
log_info(f"We need 4 services to test filter, currently {len(services)}")
server_name_elem = safe_get_element(DRIVER, By.XPATH, "//div[@data-services-service='app3.example.com']//h5")
assert isinstance(server_name_elem, WebElement), "Server name element is not a WebElement"
if server_name_elem.text.strip() != "app3.example.com":
@ -337,7 +339,7 @@ try:
log_exception("Services not found, exiting ...")
exit(1)
if len(services) > 2:
if len(services) > 4:
log_error(f"The service hasn't been deleted ({len(services)} services found), exiting ...")
exit(1)

View file

@ -19,10 +19,12 @@ def safe_get_element(driver, by: str, selector: str, *, driver_wait: Optional[We
el = None
for x in range(wait):
try:
el = driver.execute_script(f"{selector}")
if el or len(el) > 0:
el = driver.execute_script(f"return {selector} || null")
if not el:
sleep(1)
continue
else:
break
sleep(1)
except:
el = None
# Case no el found
@ -112,7 +114,7 @@ def access_page(driver, button: Union[str, WebElement], name: str, message: bool
if not clicked:
clicked = assert_button_click(driver, button)
title: Union[WebElement, List[WebElement]] = safe_get_element(driver, By.XPATH, "/html/body/div/header/div/nav/h6", driver_wait=WebDriverWait(driver, 45))
title: Union[WebElement, List[WebElement]] = safe_get_element(driver, By.XPATH, "/html/body/div[3]/header/div/nav/h6", driver_wait=WebDriverWait(driver, 45))
assert isinstance(title, WebElement), "Title is not a WebElement"
if title.text != name.title():
@ -167,19 +169,19 @@ def wait_for_service(service: str = "www.example.com"):
def verify_select_filters(driver, page_name: str, filter_items: list):
for item in filter_items:
# Update in order to get no match
driver.execute_script(f"document.querySelector('[data-{page_name}-setting-select-dropdown-btn='{item['id']}'][value='{item['value']}']').setAttribute('value', '{item['update_value']}')")
select_btn = safe_get_element(driver, "js", f"document.querySelector('[data-{page_name}-setting-select-dropdown-btn='{item['id']}'][value='{item['update_value']}']')")
driver.execute_script(f"""document.querySelector("[data-{page_name}-setting-select-dropdown-btn='{item["id"]}'][value='{item["value"]}']').setAttribute('value', '{item["update_value"]}")""")
select_btn = safe_get_element(driver, "js", f"""document.querySelector("[data-{page_name}-setting-select-dropdown-btn='{item["id"]}'][value='{item["update_value"]}']")""")
select_btn.click()
sleep(0.1)
# Verify
bans_hidden = safe_get_element(driver, "js", f'document.querySelectorAll("[data-{page_name}-list-item][class*="hidden"]")')
bans_hidden = safe_get_element(driver, "js", f"""document.querySelectorAll("[data-{page_name}-list-item][class*='hidden']")""")
if len(bans_hidden) == 0:
log_error(f"The {item['name']} filter is not working, exiting ...")
exit(1)
# Reset
driver.execute_script(f"document.querySelector('[data-{page_name}-setting-select-dropdown-btn='{item['id']}'][value='{item['update_value']}']').setAttribute('value', '{item['value']}')")
select_btn_reset = safe_get_element(driver, "js", f"document.querySelector('[data-{page_name}-setting-select-dropdown-btn='{item['id']}'][value='{item['value']}']')")
driver.execute_script(f"""document.querySelector("[data-{page_name}-setting-select-dropdown-btn='{item["id"]}'][value='{item["update_value"]}']').setAttribute('value', '{item["value"]}")""")
select_btn_reset = safe_get_element(driver, "js", f"""document.querySelector("[data-{page_name}-setting-select-dropdown-btn='{item["id"]}'][value='{item["value"]}']")""")
select_btn_reset.click()
sleep(0.1)