You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
2.1 KiB
64 lines
2.1 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_driver():
|
|
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 wait_for_loading_screen(driver):
|
|
driver.implicitly_wait(1)
|
|
for i in range(1, 5):
|
|
WebDriverWait(driver, 10).until(EC.invisibility_of_element_located((
|
|
By.XPATH, '//div[@class="q-loading animate-fade fullscreen column '
|
|
'flex-center z-maxundefined"]/svg[@class="q-spinner q-spinner-mat '
|
|
'text-white"]')))
|
|
driver.implicitly_wait(10)
|
|
|
|
|
|
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)
|
|
|
|
|
|
def check_if_unchecked(driver, element):
|
|
checkmark = driver.find_element_by_xpath(element)
|
|
if not checkmark.is_selected():
|
|
click_js(driver, element)
|