remoted
2022. 7. 4. 18:37
2022. 7. 4. 18:37
def get_browser():
if "browser" not in g:
options = webdriver.ChromeOptions()
options.add_argument("no-sandbox")
options.add_argument("--disable-gpu")
options.add_argument("--window-size=800,600")
options.add_argument("--disable-dev-shm-usage")
options.set_headless()
host = "chrome" if current_app.config["DEBUG"] else "127.0.0.1"
g.browser = webdriver.Remote(
command_executor=f"http://{host}:4444/wd/hub",
desired_capabilities=DesiredCapabilities.CHROME,
options=options,
)
return g.browser
Example #2
def chrome(headless=False):
# support to get response status and headers
d = DesiredCapabilities.CHROME
d['loggingPrefs'] = {'performance': 'ALL'}
opt = webdriver.ChromeOptions()
if headless:
opt.add_argument("--headless")
opt.add_argument("--disable-xss-auditor")
opt.add_argument("--disable-web-security")
opt.add_argument("--allow-running-insecure-content")
opt.add_argument("--no-sandbox")
opt.add_argument("--disable-setuid-sandbox")
opt.add_argument("--disable-webgl")
opt.add_argument("--disable-popup-blocking")
# prefs = {"profile.managed_default_content_settings.images": 2,
# 'notifications': 2,
# }
# opt.add_experimental_option("prefs", prefs)
browser = webdriver.Chrome(options=opt,desired_capabilities=d)
browser.implicitly_wait(10)
browser.set_page_load_timeout(20)
return browser
Example #3
def __init__(self):
super(HeadlessChromeLocust, self).__init__()
options = webdriver.ChromeOptions()
options.add_argument('headless')
options.add_argument('window-size={}x{}'.format(
self.screen_width, self.screen_height
))
options.add_argument('disable-gpu')
if self.proxy_server:
_LOGGER.info('Using proxy: ' + self.proxy_server)
options.add_argument('proxy-server={}'.format(self.proxy_server))
driver = webdriver.Chrome(chrome_options=options)
_LOGGER.info('Actually trying to run headless Chrome')
self.client = RealBrowserClient(
driver,
self.timeout,
self.screen_width,
self.screen_height,
set_window=False
)
Example #4
def create_driver():
option = webdriver.ChromeOptions()
option.add_argument("--headless")
option.add_argument("--host-resolver-rules=MAP www.google-analytics.com 127.0.0.1")
option.add_argument('user-agent=Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36')
return webdriver.Chrome(options=option)
Example #5
def headless(self, path: str, proxy: str = "") -> None:
ua = UserAgent()
userAgent = ua.random
options = webdriver.ChromeOptions()
options.add_argument("headless")
options.add_argument("window-size=1500,1200")
options.add_argument("no-sandbox")
options.add_argument("disable-dev-shm-usage")
options.add_argument("disable-gpu")
options.add_argument("log-level=3")
options.add_argument(f"user-agent={userAgent}")
if proxy != "":
self.proxy = True
options.add_argument("proxy-server={}".format(proxy))
self.driver = webdriver.Chrome(path, chrome_options=options)
self.set_config()
self._headless = True
Example #6
def __init__(self, username, password):
self.driver = None
self.last_access = time.time()
options = webdriver.ChromeOptions()
options.add_argument("--window-size=1920x1080")
options.add_argument('--ignore-certificate-errors')
options.add_argument('--headless')
options.add_argument('--no-sandbox')
options.add_argument('--disable-dev-shm-usage')
options.binary_location = "/usr/lib/chromium-browser/chromium-browser"
self.driver = webdriver.Chrome(chrome_options=options)
self.driver.set_window_size(1920, 1080)
self.driver.get(CardSender.url)
usr_box = self.driver.find_element_by_id('email')
usr_box.send_keys(username)
pass_box = self.driver.find_element_by_id('password')
pass_box.send_keys('{}\n'.format(password))
Example #7
def driver():
options = webdriver.ChromeOptions()
options.add_argument("disable-gpu")
options.add_argument("headless")
options.add_argument("no-default-browser-check")
options.add_argument("no-first-run")
options.add_argument("no-sandbox")
d = DesiredCapabilities.CHROME
d["loggingPrefs"] = {"browser": "ALL"}
driver = webdriver.Chrome(options=options, desired_capabilities=d)
driver.implicitly_wait(30)
yield driver
driver.quit()
Example #8
def get_chromedriver(use_proxy=False, user_agent=None):
# path = os.path.dirname(os.path.abspath(__file__)) # 如果没有把chromedriver放到python\script\下,则需要指定路径
chrome_options = webdriver.ChromeOptions()
if use_proxy:
pluginfile = 'proxy_auth_plugin.zip'
with zipfile.ZipFile(pluginfile, 'w') as zp:
zp.writestr("manifest.json", manifest_json)
zp.writestr("background.js", background_js)
chrome_options.add_extension(pluginfile)
if user_agent:
chrome_options.add_argument('--user-agent=%s' % user_agent)
driver = webdriver.Chrome(
# os.path.join(path, 'chromedriver'),
chrome_options=chrome_options)
return driver
Example #9
def init_driver(offline_mode=False):
"""
Creates headless Google Chrome Web Driver
"""
demisto.debug(f'Creating chrome driver. Mode: {"OFFLINE" if offline_mode else "ONLINE"}')
try:
chrome_options = webdriver.ChromeOptions()
for opt in merge_options(DEFAULT_CHROME_OPTIONS, USER_CHROME_OPTIONS):
chrome_options.add_argument(opt)
driver = webdriver.Chrome(options=chrome_options, service_args=[
f'--log-path={DRIVER_LOG}',
])
if offline_mode:
driver.set_network_conditions(offline=True, latency=5, throughput=500 * 1024)
except Exception as ex:
return_error(f'Unexpected exception: {ex}\nTrace:{traceback.format_exc()}')
demisto.debug('Creating chrome driver - COMPLETED')
return driver
Example #10
def _make(self, debug):
options = webdriver.ChromeOptions()
options.add_argument("--headless")
options.binary_location = settings.SELENIUM_CUSTOM_CHROME_PATH
browser = webdriver.Chrome(settings.SELENIUM_CHROMEDRIVER_PATH, options=options)
browser.get('file://' + os.path.abspath(os.path.join(self.dir, 'input.html')))
self.log = self.get_log(browser)
try:
WebDriverWait(browser, 15).until(EC.presence_of_element_located((By.CLASS_NAME, 'math-loaded')))
except TimeoutException:
logger.error('PDF math rendering timed out')
self.log = self.get_log(browser) + '\nPDF math rendering timed out'
return
response = browser.execute_cdp_cmd('Page.printToPDF', self.template)
self.log = self.get_log(browser)
if not response:
return
with open(os.path.abspath(os.path.join(self.dir, 'output.pdf')), 'wb') as f:
f.write(base64.b64decode(response['data']))
self.success = True
Example #11
def get_page(url):
chrome_options = webdriver.ChromeOptions()
ua_argument = 'User-Agent="'+GetUserAgent()+'"'
chrome_options.add_argument(ua_argument)
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')
chrome_options.add_argument('--incognito')
chrome_options.add_argument('log-level=3')
try:
driver = webdriver.Chrome(chrome_options=chrome_options)
#driver.set_page_load_timeout(6)
# driver.set_script_timeout(6)
driver.get(url)
# time.sleep(0.5)
driver.quit()
except:
driver.quit()
print("timeout")
Example #12
def _create_chrome_options(self):
"""Create and configure a chrome options object
:returns: chrome options object
"""
# Get Chrome binary
chrome_binary = self.config.get_optional('Chrome', 'binary')
# Create Chrome options
options = webdriver.ChromeOptions()
if self.config.getboolean_optional('Driver', 'headless'):
self.logger.debug("Running Chrome in headless mode")
options.add_argument('--headless')
if os.name == 'nt': # Temporarily needed if running on Windows.
options.add_argument('--disable-gpu')
if chrome_binary is not None:
options.binary_location = chrome_binary
# Add Chrome preferences, mobile emulation options and chrome arguments
self._add_chrome_options(options, 'prefs')
self._add_chrome_options(options, 'mobileEmulation')
self._add_chrome_arguments(options)
return options
Example #13
def createChromeDriver():
print("\nOpening Chrome WebDriver...")
options = webdriver.ChromeOptions()
options.add_argument("--start-maximized")
chrome_path = credentials.path
return webdriver.Chrome(chrome_path, options=options)
#Clicks the first button on the website, the 'get started' button
Example #14
def run_selenium(url, is_season_data, league_id):
options = webdriver.ChromeOptions()
options.add_argument('headless')
options.add_argument('no-sandbox')
options.add_argument('disable-dev-shm-usage')
capa = DesiredCapabilities.CHROME
capa["pageLoadStrategy"] = "none"
driver = webdriver.Chrome(chrome_options=options, desired_capabilities=capa)
try:
app.logger.info('%s - Starting selenium', league_id)
driver.get(url)
app.logger.info('%s - Waiting for element to load', league_id)
# Season standings have a different URL than weekly scoreboard
if is_season_data:
WebDriverWait(driver, 30).until(EC.presence_of_element_located((By.CLASS_NAME, 'Table2__sub-header')))
else:
WebDriverWait(driver, 30).until(EC.presence_of_element_located((By.CLASS_NAME, 'Table2__header-row')))
app.logger.info('%s - Element loaded. Sleeping started to get latest data.', league_id)
time.sleep(5)
plain_text = driver.page_source
soup = BeautifulSoup(plain_text, 'html.parser')
app.logger.info('%s - Got BeautifulSoup object', league_id)
except Exception as ex:
app.logger.error('%s - Could not get page source.', league_id, ex)
soup = None
finally:
driver.quit()
return soup