ngcp-panel/t/selenium/functions/Functions.py

65 lines
2.3 KiB

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
def fill_element(driver, element, text, pathtype=By.XPATH):
elem = driver.find_element(pathtype, element)
elem.send_keys(Keys.CONTROL + "a")
elem.send_keys(Keys.DELETE)
elem.send_keys(text)
def scroll_to_element(driver, element):
if element[:1] == "/":
webelem = driver.find_element(By.XPATH, element)
else:
webelem = driver.find_element_by_link_text(element)
driver.execute_script("arguments[0].scrollIntoView();", webelem)
def click_js(driver, element):
if element[:1] == "/":
webelement = driver.find_element(By.XPATH, element)
else:
webelement = driver.find_element_by_link_text(element)
driver.execute_script("arguments[0].click();", webelement)
def create_firefoxdriver():
profile = webdriver.FirefoxProfile()
profile.accept_untrusted_certs = True
caps = DesiredCapabilities().FIREFOX
caps["pageLoadStrategy"] = "normal"
driver = webdriver.Firefox(
capabilities=caps, firefox_profile=profile,
service_log_path='/dev/null', )
driver.implicitly_wait(10)
return driver
def create_chromedriver():
chromeoptions = webdriver.ChromeOptions()
chromeoptions.add_argument('--allow-insecure-localhost')
chromeoptions.add_argument('--ignore-certificate-errors')
chromeoptions.add_argument('--no-sandbox')
chromeoptions.add_argument('--disable-dev-shm-usage')
chromeoptions.add_argument("--disable-logging")
chromeoptions.add_argument("--log-level=3")
chromeoptions.add_argument("--output=/dev/null")
chromeoptions.add_argument("--start-maximized")
chromeoptions.set_capability('acceptInsecureCerts', True)
chromeoptions.set_capability('pageLoadStrategy', 'normal')
driver = webdriver.Chrome(options=chromeoptions)
driver.implicitly_wait(10)
return driver
def wait_for_invisibility(driver, xpath):
driver.implicitly_wait(2)
WebDriverWait(driver, 10).until(EC.invisibility_of_element_located((By.XPATH, xpath)))
driver.implicitly_wait(10)