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" )
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")
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")
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)
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
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
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
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")
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()
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)
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(
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
#!/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()