65 lines
2.3 KiB
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)
|