def edge(headless=True): options = EdgeOptions() options.use_chromium = True options.headless = headless edge_driver = EdgeChromiumDriverManager().install() driver = Edge(edge_driver, options=options) return driver
def SetUpEdge(self): """Product name: Microsoft WebDriver Product version 83.0.478.58 * Edge gets wordy when it's headless, but at least it's working (by setting window size) * At the time of this refactor for Selenium 4, Edge does not yet support the new API, so I'm using the legacy one""" options = EdgeOptions() options.use_chromium = True #EdgeOptions.AddArguments("headless") # this version of selenium doesn't have addarguments for edge options.headless = True # I got this to work by setting the handler window size try: handler = Edge(executable_path=Path(self.handler_path + 'msedgedriver.exe'), options=options) handler.set_window_size( 1600, 1200 ) # set the browser handler window size so that headless will work with sendkeys logging.info( f"{datetime.now(tz=None)} Info {self.browse} browser handler found" ) except (WebDriverException): logging.info( f"{datetime.now(tz=None)} Warning {self.browse} browser handler not found or failed to launch." ) handler = None return handler # ignore the handshake errors
def get_driver(browser, headless_mode=False) -> EventFiringWebDriver: if browser == "chrome": options = webdriver.ChromeOptions() options.add_argument("start-maximized") if headless_mode is True: options.add_argument("--headless") driver = EventFiringWebDriver( webdriver.Chrome(ChromeDriverManager().install(), options=options), WebDriverListener()) return driver elif browser == "firefox": options = webdriver.FirefoxOptions() if headless_mode is True: options.headless = True driver = EventFiringWebDriver( webdriver.Firefox( executable_path=GeckoDriverManager().install(), options=options), WebDriverListener()) return driver elif browser == "edge": options = EdgeOptions() options.use_chromium = True if headless_mode is True: options.headless = True driver_path = EdgeChromiumDriverManager().install() driver = EventFiringWebDriver( Edge(executable_path=driver_path, options=options), WebDriverListener()) return driver raise Exception("Provide valid driver name")
def edge_builder(headless=False, **kwargs): edge_options = EdgeOptions() edge_options.use_chromium = True if headless: edge_options.headless = True service_log_path = f"{LOG_DIR}/edge_driver.log" driver = webdriver.Edge(edge_options, service_log_path=service_log_path) return driver
def openEdgeBrowser(webDriverLocation: str, showBrowser: bool) -> webdriver: print("打开Edge浏览器!") option = EdgeOptions() # 开启无头模式. if not showBrowser: option.use_chromium = True option.headless = True browser = Edge(executable_path=webDriverLocation, options=option) return browser
def extract_element(): options = EdgeOptions() options.headless = True options.use_chromium = True driver = Edge(executable_path=configs.msedge_driver_executable_path, options=options) driver.get(configs.home_page_url) time.sleep(4) element = driver.find_element_by_xpath(configs.html_image_element) html = element.get_attribute('outerHTML') driver.quit() return html
def edge(self, sign_test: bool): edge_webriver = self.msedge_path() save_folder = self.save_folder() extensions = self.extensions_path() options = EdgeOptions() if sign_test == False: options.headless = True else: options.add_extension(extension=extensions) options.use_chromium = True options.add_experimental_option( "prefs", {"download.default_directory": save_folder}) return Edge(executable_path=edge_webriver, options=options)
def wa_login(isHeadless=True): ''' Use to login to Whatsapp Web Can omit usage if already logged in once by scanning QR Parameters ---------- None Returns ------- None ''' options = EdgeOptions() options.use_chromium = True #Uses chromium-based edgium, remove to use legacy edge options.add_argument("user-data-dir="+os.getcwd()+"\\Cache") options.add_argument("user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36 Edg/88.0.705.49") options.add_experimental_option('excludeSwitches', ['enable-logging']) # options.add_experimental_option("excludeSwitches", ["enable-automation"]) # options.add_experimental_option("useAutomationExtension", False) options.headless = isHeadless #Headless mode global driver driver = Edge(EdgeChromiumDriverManager().install(),options=options) driver.get('https://web.whatsapp.com/') if os.path.isfile('./Cache/wa.exists'): return else: pass wait_for_load('_1PTz1') driver.execute_script(""" var element1 = document.querySelector("._3DgtU"); var element2 = document.querySelector("._1iKcN"); if (element1) element1.parentNode.removeChild(element1); if (element2) element2.parentNode.removeChild(element2); """) Image.open(BytesIO(driver.find_element_by_class_name('landing-main').screenshot_as_png)).show() with open('Cache/wa.exists','w') as file: pass
def webDriverConfig(agent): driver_path = 'msedgedriver.exe' #options to make selenium faster prefs = { 'profile.default_content_setting_values': { 'images': 2, 'plugins': 2, 'popups': 2, 'geolocation': 2, 'notifications': 2, 'auto_select_certificate': 2, 'fullscreen': 2, 'mouselock': 2, 'mixed_script': 2, 'media_stream': 2, 'media_stream_mic': 2, 'media_stream_camera': 2, 'protocol_handlers': 2, 'ppapi_broker': 2, 'automatic_downloads': 2, 'midi_sysex': 2, 'push_messaging': 2, 'ssl_cert_decisions': 2, 'metro_switch_to_desktop': 2, 'protected_media_identifier': 2, 'app_banner': 2, 'site_engagement': 2, 'durable_storage': 2 } } options = EdgeOptions() options.use_chromium = True options.add_argument("--start-maximized") options.add_argument(f"user-agent={agent}") options.headless = True # comment this line to visualize page visiting options.add_experimental_option("prefs", prefs) driver = Edge(driver_path, options=options) return driver
def browser(request): maximized = request.config.getoption("--maximized") headless = request.config.getoption("--headless") browser = request.config.getoption("--browser") if browser == "chrome": options = webdriver.ChromeOptions() if headless: options.headless = True driver = webdriver.Chrome(options=options) if browser == "firefox": options = webdriver.FirefoxOptions() if platform.system() == "Windows": local_data = os.getenv('LOCALAPPDATA', None) options.binary_location = os.path.join( local_data, r"Mozilla Firefox\firefox.exe") if headless: options.headless = True driver = webdriver.Firefox(options=options) if browser == "edge": options = EdgeOptions() if headless: options.use_chromium = True options.headless = True driver = Edge( executable_path=r"C:/projects/drivers/MicrosoftWebDriver.exe", options=options ) if maximized: driver.maximize_window() def fin(): driver.quit() print(f'Test {request.node.name} is over') request.addfinalizer(fin) return driver
from msedge.selenium_tools import Edge, EdgeOptions 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 import webdriver from urllib3.exceptions import MaxRetryError import os import time options = EdgeOptions() options.use_chromium = True options.headless = True class Chat: def __init__(self): self.login = None self.password = None self.message = None self.thread = None self.picture = None self._driver = None self._session = None self._executor_url = None self._base_url = 'https://www.messenger.com/' self._initiate() def _initiate(self): try: with open('SessionExecutor.txt') as f:
def get_edge_option(config): options = EdgeOptions() options.use_chromium = True options.headless = config["headless"] return options
def create_webdriver() -> Edge: options = EdgeOptions() options.use_chromium = True options.headless = True driver = Edge(options=options) return driver