Exemplo n.º 1
0
def get_firefox_driver():
    firefox_path = '/usr/bin/firefox'
    firefox_options = Options()
    firefox_options.add_argument("--headless")
    firefox_options.add_argument("--window-size=%s" % WINDOW_SIZE)
    firefox_options.binary = firefox_path
    firefox_options.profile = webdriver.FirefoxProfile()
    return webdriver.Firefox(
        firefox_options=firefox_options,
        log_path="/tmp/geckodriver.log"
    )
Exemplo n.º 2
0
def before_all(context):
    chrome_options = Options()
    chrome_options.binary = "bin/headless-chromium"
    chrome_options.headless = True
    chrome_options.add_argument("--no-sandbox")  # Bypass OS security model
    chrome_options.add_argument("--single-process")
    chrome_options.add_argument("--disable-dev-shm-usage")
    chrome_options.add_argument("window-size=1200,800")
    chrome_options.add_argument("--disable-gpu")

    context.browser = webdriver.Chrome(options=chrome_options)
    context.browser.set_page_load_timeout(time_to_wait=60)
    context.browser.delete_all_cookies()

    context.config.setup_logging(os.environ.get("LOG_LEVEL", "ERROR"))
    context.logger = logging.getLogger("behave")
Exemplo n.º 3
0
def BrowserFromService( CDS=getCDS(), headless = False):
    
    chrome_options = Options()  
    if headless:
        chrome_options.add_argument("--headless")
        
    chrome_options.binary = '/usr/local/bin/chromedriver'
    capabilities = chrome_options.to_capabilities()
    #print('capabilities', capabilities)

    Browser = webdriver.Remote(CDS, desired_capabilities = capabilities)

    f=open('chromedriver.txt','w')
    f.write(CDS)
    f.close()
    
    return Browser
def before_scenario(context, _scenario):
    context.api_session = requests.Session()
    # options = webdriver.FirefoxOptions()
    # options.headless = os.environ["E2E_HEADLESS"] == "true"
    # context.browser = webdriver.Firefox(options=options)
    # context.browser.set_window_size(1080,800)

    options = Options()
    options.binary = "bin/headless-chromium"
    options.add_argument("-headless")
    options.add_argument("--no-sandbox")
    options.add_argument("--single-process")
    options.add_argument("--disable-dev-shm-usage")

    context.browser = webdriver.Chrome("/opt/chromedriver",
                                       chrome_options=options)
    context.browser.set_window_size(1080, 800)
    context.config.setup_logging(os.environ.get("LOG_LEVEL", "ERROR"))
    context.logger = logging.getLogger("behave")
Exemplo n.º 5
0
def get_firefox(headless=False, *args, **kwargs):
    options = Options()
    options.binary = FIREFOXPATH

    if headless:
        options.add_argument("-headless")

    firefox_profile = FirefoxProfile()
    firefox_profile.set_preference(
        "general.useragent.override",
        "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:77.0) Gecko/20100101 Firefox/77.0"
    )

    firefox_profile.set_preference("geo.prompt.testing", True)
    firefox_profile.set_preference("geo.prompt.testing.allow", True)
    binary = FirefoxBinary()

    return webdriver.Firefox(firefox_profile=firefox_profile,
                             options=options,
                             firefox_binary=binary)
Exemplo n.º 6
0
    def firefox_driver(self):
        options = Options()
        options.add_argument("--headless")
        binary = FirefoxBinary(
            'C:/Program Files (x86)/Mozilla Firefox/firefox.exe')
        options.binary = binary

        fp = (
            r'C:\Users\username\AppData\Roaming\Mozilla\Firefox\Profiles\oqmqnsih.default'
        )
        options.profile = fp
        cap = DesiredCapabilities().FIREFOX
        cap["marionette"] = False

        #driver = webdriver.Firefox(executable_path='E:/geckodriver-v0.26.0-win64/geckodriver.exe',capabilities=cap, options=chrome_options)
        driver = webdriver.Firefox(
            executable_path='E:/geckodriver-v0.26.0-win64/geckodriver.exe',
            firefox_options=options)
        print('got driver')
        return driver
Exemplo n.º 7
0
 def _process_firefox_options(self, opts):
     from selenium.webdriver.firefox.options import Options
     if isinstance(opts, Options):
         options = opts
     else:
         options = Options()
         if 'args' in opts:
             for arg in opts.pop('args'):
                 options.add_argument(arg)
         if 'binary' in opts or 'binary_location' in opts:
             options.binary = opts.pop('binary') or opts.pop(
                 'binary_location')
         if 'prefs' in opts:
             for name, value in opts.pop('prefs').items():
                 options.set_preference(name, value)
         if 'proxy' in opts:
             options.proxy = opts.pop('proxy')
         if 'profile' in opts:
             options.profile = opts.pop('profile')
         if 'log_level' in opts:
             options.log.level = opts.pop('log_level')
     self.selenium_opts['firefox_options'] = options
Exemplo n.º 8
0
def login():
    #### Google Chrome
    # driver = webdriver.Chrome()
    # driver.get('https://victorvalley.parkadmin.com/admin/start/login.aro')

    #### Firefox
    binary = r'C:\Users\Talon.Pollard\AppData\Local\Mozilla Firefox\firefox.exe'  # Work dir
    # binary = r'C:\Program Files\Mozilla Firefox\firefox.exe' # Home dir
    options = Options()
    # options.set_headless(headless=True)
    options.binary = binary

    profile = webdriver.FirefoxProfile()
    profile.set_preference("media.volume_scale", "0.0")

    cap = DesiredCapabilities().FIREFOX
    cap["marionette"] = True  #optional

    driver = webdriver.Firefox(firefox_profile=profile,
                               options=options,
                               capabilities=cap,
                               executable_path="drivers/geckodriver.exe")
    driver.get('https://victorvalley.parkadmin.com/admin/start/login.aro')

    with open("login.txt") as f:
        f = f.read().splitlines()
        un = f[0]
        pw = f[1]

    id_box = driver.find_element_by_id("username")
    id_box.send_keys(un)

    pass_box = driver.find_element_by_id("password")
    pass_box.send_keys(pw)

    login_button = driver.find_element_by_id("login")
    login_button.click()

    return driver
Exemplo n.º 9
0
def before_all(context):
    chrome_options = Options()
    chrome_options.binary = "/usr/bin/google-chrome-stable"
    chrome_options.headless = True

    chrome_options.add_argument("--no-sandbox")  # Bypass OS security model
    chrome_options.add_argument("--single-process")
    chrome_options.add_argument("--disable-dev-shm-usage")
    chrome_options.add_argument("window-size=1200,800")
    chrome_options.add_argument("--disable-gpu")
    chrome_options.add_argument("start-maximized")
    chrome_options.add_argument("enable-automation")
    chrome_options.add_argument("--headless")
    chrome_options.add_argument("--disable-dev-shm")
    chrome_options.add_argument("--disable-info-bars")
    chrome_options.add_argument("--disable-browser-side-navigation")

    context.browser = webdriver.Chrome(options=chrome_options)
    context.browser.set_page_load_timeout(time_to_wait=60)
    context.browser.set_script_timeout(time_to_wait=60)
    context.browser.delete_all_cookies()

    context.config.setup_logging(os.environ.get("LOG_LEVEL", "ERROR"))
    context.logger = logging.getLogger("behave")
Exemplo n.º 10
0
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import time

options = Options()
options.add_argument("--headless")
options.binary = '/usr/bin/chromium-browser'
#driver_path='/home/edureka/bin/chromedriver'
browser = webdriver.Chrome(
    chrome_options=options
)  #,executable_path=driver_path); commenting as will try to install desired chromedriver in default path and run the case
time.sleep(120)
browser.get("http://127.0.0.1:8080/")
time.sleep(10)
link = browser.find_element_by_link_text('About Us')
link.click()
time.sleep(1)
text = 'This is about page.'
assert browser.page_source.find(text)
browser.quit()
Exemplo n.º 11
0
import csv
import os
import re

import jinja2
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
# chrome_options.add_argument("--headless")
# chrome_options.binary_location = '/usr/bin/chromium-browser'
chrome_options.binary = '/usr/lib/chromium-browser/chromium-browser'
chrome_options.add_experimental_option(
    "prefs", {
        "download.default_directory":
        r"/home/jimmy/Workspaces-Pycharm/timeseries/data",
        "download.prompt_for_download": False,
        "download.directory_upgrade": True,
        "safebrowsing.enabled": True
    })

download_list = ['http://10.0.0.162/datamodel/201809a/auth/Tables.html']


def camel_case(column_name):
    return re.sub('_([a-z])', lambda match: match.group(1).upper(),
                  column_name.lower())


def Camel_case(column_name):
    camel_case_name = camel_case(column_name)
Exemplo n.º 12
0
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from shutil import which

#ARM Architecture version

#sudo apt-get install chromium-chromedriver
#automated with crontab for every minute

chromiumOptions = Options()
chromiumOptions.binary = which("chromium")
chromiumOptions.add_argument("--headless")

watchlist = ["CSE 535", "CSE 539", "CSE 574", "CSE 575"]
courseCatalogURL = "https://webapp4.asu.edu/catalog/classlist?t=2211&s=CSE&n=5**&hon=F&promod=F&e=all&page=1"
newDataPath = open(r"enter/path/to/local/file", "w+")
browser = webdriver.Chrome(options=chromiumOptions)

browser.get(courseCatalogURL)
try:
    WebDriverWait(browser, 10).until(
        EC.presence_of_element_located(
            (By.CSS_SELECTOR, "td.titleColumnValue")))
    classList = browser.find_elements_by_css_selector('td.titleColumnValue')
    courseNumberList = browser.find_elements_by_css_selector(
        'td.subjectNumberColumnValue.nowrap')
    availableSeatList = browser.find_elements_by_css_selector(
Exemplo n.º 13
0
def set_selenium_local_session(
    proxy_address,
    proxy_port,
    proxy_username,
    proxy_password,
    headless_browser,
    browser_profile_path,
    disable_image_load,
    page_delay,
    chromedriver_path,
    browser_executable_path,
    logfolder,
    logger,
    chromedriver_log_level,
):
    browser = None
    err_msg = ""
    user_agent = (  # TODO: set user agent to chrome
        "Mozilla/5.0 (iPhone; CPU iPhone OS 12_1 like Mac OS X) AppleWebKit/605.1.15 "
        "(KHTML, like Gecko) FxiOS/18.1 Mobile/16B92 Safari/605.1.15")

    Settings.user_agent = user_agent
    chrome_options = Chrome_Options()

    if headless_browser:
        chrome_options.add_argument("--headless")

    # if browser_profile_path is not None:
    #     chrome_profile = webdriver.ChromeProfile(browser_profile_path)
    # else:
    #     chrome_profile = webdriver.ChromeProfile()

    if browser_executable_path is not None:
        chrome_options.binary = browser_executable_path

    # set "info" by default
    # set "trace" for debugging, development only
    chrome_options.add_argument(
        "--log-level={}".format(chromedriver_log_level))

    # set language to English
    chrome_options.add_argument("--lang={}".format('en'))
    if user_agent:
        chrome_options.add_argument("--user-agent={}".format(user_agent))

    if disable_image_load:
        # There also exists an extension for this, for further information:
        # https://stackoverflow.com/questions/28070315/python-disable-images-in-selenium-google-chromedriver
        prefs = {"profile.managed_default_content_settings.images": 2}
        chrome_options.add_experimental_option("prefs", prefs)

    if proxy_address and proxy_port:
        chrome_options.add_argument('{0}:{1}'.format(proxy_address,
                                                     proxy_port))

    chrome_options.add_argument("--mute-audio")

    #TODO: extension to hide selenium, check out browser_firefox to see how it's done
    #

    chromedriver_log = "{}chromedriver.log".format(logfolder)
    chrome_options.add_argument("--log_path={}".format(chromedriver_log))
    driver_path = chromedriver_path or get_chromedriver()
    browser = webdriver.Chrome(
        # chrome_profile=chrome_profile,
        executable_path=driver_path,
        # log_path=chromedriver_log,
        options=chrome_options)

    if proxy_username and proxy_password:
        # proxy_authentication(browser, logger, proxy_username, proxy_password)
        pass  #TODO: implement proxy_authentication

    browser.implicitly_wait(page_delay)
    try:
        browser.set_window_size(375, 812)
    except UnexpectedAlertPresentException as exc:
        logger.exception("Unexpected alert on resizing web browser!\n\t"
                         "{}".format(str(exc).encode("utf-8")))
        close_browser(browser, False, logger)
        return browser, "Unexpected alert on browser resize"

    message = "Session started!"
    highlight_print("browser", message, "initialization", "info", logger)
    browser.typeofbr = "Chrome"
    return browser, err_msg
Exemplo n.º 14
0
#!/usr/bin/env python3

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
from selenium.webdriver.firefox.firefox_profile import FirefoxProfile

binary = r'/usr/lib/Google_Chrome.app/Contents/MacOS/Google_Chrome'
options = Options()
options.set_headless(headless=True)
options.binary = binary
driver = webdriver.Chrome(chrome_options=options, executable_path='/usr/bin/chromedriver')
print ("Headless Chrome Initialized")
# driver.get("http://www.imdb.com/title/tt3783958/")
# elem = driver.find_element_by_css_selector('strong span')
# print("Rating: {}".format(elem.text))
# elem = driver.find_elements_by_css_selector('.subtext .itemprop')
# for e in elem:
#   print("- {}".format(e.text))
driver.quit()