def _set_options_(self): edge_options = EdgeOptions() edge_options.use_chromium = True # if we miss this line, we can't make Edge headless # A little different from Chrome cause we don't need two lines before 'headless' and 'disable-gpu' edge_options.add_argument('headless') edge_options.add_argument('disable-gpu') return edge_options
def setUpClass(cls): for db in settings.DATABASES: # Avoid leaking persistent connections settings.DATABASES[db]["CONN_MAX_AGE"] = 0 os.environ["FREPPLE_TEST"] = "YES" super().setUpClass() if settings.SELENIUM_TESTS == "firefox": firefox_options = webdriver.FirefoxOptions() if settings.SELENIUM_HEADLESS: firefox_options.add_argument("--headless") cls.driver = webdriver.Firefox(firefox_options=firefox_options) elif settings.SELENIUM_TESTS == "chrome": options = webdriver.ChromeOptions() options.add_argument("--silent") if settings.SELENIUM_HEADLESS: options.add_argument("--headless") cls.driver = webdriver.Chrome(chrome_options=options) elif settings.SELENIUM_TESTS == "edge": from msedge.selenium_tools import Edge, EdgeOptions options = EdgeOptions() options.use_chromium = True options.add_argument("--silent") if settings.SELENIUM_HEADLESS: options.add_argument("--headless") cls.driver = Edge(options=options) else: raise Exception("Invalid setting SELENIUM_TESTS") cls.driver.set_window_size(1080, 800) cls.driver.implicitly_wait(10)
def main(driver: WebDriver = None): try: if not driver: options = EdgeOptions() options.use_chromium = True options.add_argument("-inprivate") driver = Edge(executable_path=EDGE_DRIVER_PATH, options=options) driver.get(url_encode()) wait = WebDriverWait(driver, 30, 1) # elem_vote = driver.find_element(By.XPATH, "//a[text()='投票']") # elem_vote = wait.until(EC.presence_of_element_located((By.XPATH, r"//a[text()='投票']"))) # elem_vote.click() callback = step() elem = wait.until(callback) # elem_vote_options = wait.until(get_elem_vote_options) # elem_vote_options = wait.until(EC.visibility_of_all_elements_located((By.XPATH, "//div/div/label[@class='label']"))) # elem_vote_options = elem_vote.find_elements(By.XPATH, "//div/div/label[@class='label']") elem = wait.until(callback) # map(lambda e: e.click(), elem_vote_options) # elem_vote_btn = wait.until(EC.element_to_be_clickable((By.XPATH, r"//a[text()='確認送出']"))) # 1elem_vote_btn = driver.find_element(By.XPATH, r"//a[text()='確認送出']") # elem_vote_btn.click() elem = wait.until(callback) except Exception as e: traceback.print_exc(4, sys.stderr) finally: driver.delete_all_cookies() driver.refresh() main(driver) driver.quit()
def Restart_Modem(): options = EdgeOptions() options.use_chromium = True options.add_argument("-inprivate") edge_browser = Edge(options=options) edge_browser.get('http://192.168.0.1') time.sleep(2) print('Welcome') try: login = edge_browser.find_element_by_name('username') password = edge_browser.find_element_by_name('password') sign = edge_browser.find_element_by_class_name('styled_button_s') login.clear() password.clear() login.send_keys('admin') password.send_keys('admin') time.sleep(2) sign.click() print('Sign in') alert = Alert(edge_browser) time.sleep(2) edge_browser.get('http://192.168.0.1/saveconf.htm') time.sleep(2) system = edge_browser.find_element_by_id('three_level_menu1') system.click() time.sleep(2) reboot = edge_browser.find_element_by_name('reboot') reboot.click() alert.accept() time.sleep(70) print('Reboot') edge_browser.quit() except: print('Problem with restarting modem') edge_browser.quit()
def setup(browser): if browser == 'chromeheadless': from selenium.webdriver.chrome.options import Options chromeoptions = Options() chromeoptions.headless = True driver = webdriver.Chrome(options=chromeoptions) elif browser == 'ffheadless': from selenium.webdriver.firefox.options import Options ffoptions = Options() ffoptions.headless = True driver = webdriver.Firefox(options=ffoptions) elif browser == 'edgeheadless': from msedge.selenium_tools import Edge, EdgeOptions options = EdgeOptions() options.use_chromium = True options.add_argument("--headless") driver = Edge(options=options) # elif browser == 'vivaldi': # opt = Options() # opt.binary_location = r'C:\Users\Dana Scully\AppData\Local\Vivaldi\Application\vivaldi.exe' # driver = webdriver.Chrome(options=opt) #cant get to work else: #default driver = webdriver.Chrome() return driver
def __init__(self, options=None, user_agent=None, wait_time=2, fullscreen=False, incognito=False, headless=False, chromium=True, **kwargs): options = Options() or options if user_agent is not None: options.add_argument("--user-agent=" + user_agent) if incognito: options.add_argument("--incognito") if fullscreen: options.add_argument("--kiosk") if headless: options.add_argument("--headless") options.add_argument("--disable-gpu") options.use_chromium = chromium driver = Edge(options=options, **kwargs) super(WebDriver, self).__init__(driver, wait_time)
def init_browser(): global browser if "chrome_type" in config and config['chrome_type'] == "msedge": chrome_options = EdgeOptions() chrome_options.use_chromium = True else: chrome_options = webdriver.ChromeOptions() chrome_options.add_argument('--ignore-certificate-errors') chrome_options.add_argument('--ignore-ssl-errors') chrome_options.add_argument('--use-fake-ui-for-media-stream') chrome_options.add_experimental_option( 'prefs', { 'credentials_enable_service': False, 'profile.default_content_setting_values.media_stream_mic': 1, 'profile.default_content_setting_values.media_stream_camera': 1, 'profile.default_content_setting_values.geolocation': 1, 'profile.default_content_setting_values.notifications': 1, 'profile': { 'password_manager_enabled': False } }) chrome_options.add_experimental_option('excludeSwitches', ['enable-automation']) if 'headless' in config and config['headless']: chrome_options.add_argument('--headless') print("Enabled headless mode") if 'mute_audio' in config and config['mute_audio']: chrome_options.add_argument("--mute-audio") if 'chrome_type' in config: if config['chrome_type'] == "chromium": browser = webdriver.Chrome( ChromeDriverManager(chrome_type=ChromeType.CHROMIUM).install(), options=chrome_options) elif config['chrome_type'] == "msedge": browser = Edge(EdgeChromiumDriverManager().install(), options=chrome_options) else: browser = webdriver.Chrome(ChromeDriverManager().install(), options=chrome_options) else: browser = webdriver.Chrome(ChromeDriverManager().install(), options=chrome_options) # make the window a minimum width to show the meetings menu window_size = browser.get_window_size() if window_size['width'] < 1200: print("Resized window width") browser.set_window_size(1200, window_size['height']) if window_size['height'] < 850: print("Resized window height") browser.set_window_size(window_size['width'], 850)
def driver_init(): options = EdgeOptions() options.use_chromium = True profile_dir = r"--user-data-dir=C:\Users\Chan\AppData\Local\Microsoft\Edge\User Data" options.add_argument(profile_dir) options.add_experimental_option('excludeSwitches', ['enable-logging']) driver = Edge(options=options) return driver
def getRobertsAnimeCornerStoreData(title, bookType): #Starts wevdriver to scrape edge chromium options = EdgeOptions() options.use_chromium = True options.add_argument("-inprivate") options.add_argument("--headless") driver = Edge(options=options) soup = BeautifulSoup(driver.page_source, "html.parser") newPage = getDataPage(driver, title, soup, bookType) if not newPage: print(title) print("Error!!!!! Invalid Series Title") return else: #Start scraping the URL where the data is found driver.get(newPage) #Wait for the web page to finish loading time.sleep(5) #Start parsing the web pages html and css soup2 = BeautifulSoup(driver.page_source, "html.parser") #Get the Title and Price of each manga or light novel dataList, titleList = [], [] titleParse = soup2.find_all( "tr", {"valign": "top" })[1:] #Remove first element cause it pulls unwanted text priceList = soup2.select( 'font[color="#ffcc33"]' )[1:: 2] #[1::2] to remove the RACS Price text (every odd element in the list) #Convert title list to strings so you can remove any black/empyt spaces for bookTitle in titleParse: seriesTitle = bookTitle.find("font", {"size": "2"}).b.text if seriesTitle != " ": titleList.append(seriesTitle) del titleParse #Remove list from memory as we don't need it anymore stockStatus = "" for titles, prices in zip(titleList, priceList): specTitle = str(titles).replace(",", "") if specTitle.find("Pre Order") != -1: stockStatus = "Pre-Order" else: stockStatus = "Available" dataList.append([specTitle, prices.text, stockStatus]) csvFile = "AnimeCornerStore.csv" with open(csvFile, "w", newline="", encoding="utf-8") as file: writeToFile = csv.writer(file) writeToFile.writerow(["Title", "Price", "Stock Status"]) writeToFile.writerows(dataList) #TableGUI.robertsDataTable.setItem(numRows, 0, QtWidgets.QTableWidgetItem(str(dataList[0]))) return dataList
def run(): email = read_decrypt(efile) password = read_decrypt(pfile) cemail = str(email) cpassword = str(password) print(cemail) print(cpassword) with open("browserdetails.txt", "r") as f: data = [line.rstrip('\n') for line in f] browser = data[0].lower() gpu = data[1].lower() if browser == 'edge': try: requests.get("http://www.google.com") print('Connection Found') options = EdgeOptions() options.use_chromium = True options.add_argument("--start-maximized") if gpu == 'no': options.add_argument("window-size=1920,1080") options.add_argument("--headless") options.add_argument("disable-gpu") options.add_argument("-inprivate") driver = Edge(executable_path='msedgedriver.exe', options=options) driver.get('https://gokano.com/') try: email = WebDriverWait(driver, 3).until( EC.presence_of_element_located((By.NAME, 'email'))) print("Page is ready!") email.send_keys(cemail) password = driver.find_element_by_name('password') password.send_keys(cpassword) time.sleep(3) button = driver.find_element_by_class_name('submit') button.click() print('Login sucessful') except TimeoutException: print("Error logining in") #[email protected] time.sleep(3) driver.quit() time.sleep(3) try: cdp = driver.find_element_by_link_text('Collect daily points') cdp.click() write_time() time.sleep(3) driver.quit() except NoSuchElementException: print('Already collected') time.sleep(3) driver.quit() print('Automation completed') time.sleep(3) driver.quit() except requests.ConnectionError: print('Could not connect')
def get_headless_edge_options(self): "Setting up headless edge options" options = EdgeOptions() options.use_chromium = True options.add_argument("headless") options.add_argument("disable-gpu") local_driver = Edge(options=options) return local_driver
def __init__(self, url: str): edge_options = EdgeOptions() edge_options.use_chromium = True edge_options.add_argument('headless') edge_options.add_argument('disable-gpu') self.driver = Edge(executable_path='msedgedriver.exe', options=edge_options) self.driver.get(url) self.wait = WebDriverWait(self.driver, 10)
def open_browser(env, browser='chrome', incognito=True): driver = None if browser == "chrome": chrome_options = webdriver.ChromeOptions() if incognito: chrome_options.add_argument('--incognito') driver = webdriver.Chrome(executable_path=chrome_driver_path, chrome_options=chrome_options) elif browser == "msedge": edge_options = EdgeOptions() edge_options.use_chromium = True if incognito: edge_options.add_argument('-inprivate') driver = Edge(executable_path=msedge_driver_path, options=edge_options) elif browser == "firefox": firefox_options = webdriver.FirefoxOptions() if incognito: firefox_options.add_argument('--incognito') driver = webdriver.Firefox(executable_path=firefox_driver_path, options=firefox_options) elif browser == "ie": driver = webdriver.Ie(executable_path=ie_driver_path) # selenium grid # driver = webdriver.Remote(command_executor='http://10.22.40.234:5555/wd/hub', # desired_capabilities=DesiredCapabilities.INTERNETEXPLORER) elif browser == "safari": driver = webdriver.Safari() # 获取web配置 with open(web_config_path, 'r', encoding='utf-8') as file: data = yaml.load(file, Loader=yaml.FullLoader) # 以下是一个示例,基于config/web_config.yaml文件做的配置 if env == "msit": url = data["portal"]['msit'] Logger.info("Open Url: %s", url) driver.get(url) if env == "srol1": url = data["portal"]['srol1'] Logger.info("Open Url: %s", url) driver.get(url) if env == "srol2": url = data["portal"]['srol2'] Logger.info("Open Url: %s", url) driver.get(url) if env == "ppe": url = data["portal"]['ppe'] Logger.info("Open Url: %s", url) driver.get(url) if env == "refe": url = data["portal"]['refe'] Logger.info("Open Url: %s", url) driver.get(url) elif env == '': driver = None driver.maximize_window() driver.implicitly_wait(data['implicitly_wait']) return driver
def create_chrome_driver(self): chrome_options = EdgeOptions() proxy = self.get_next_proxy() print("CurrProxy: " + proxy) chrome_options.add_argument('--proxy-server=%s' % proxy) return webdriver.Chrome( "C:\\Windows.old\\Users\\Public\\chromedriver.exe", options=chrome_options)
def checkEmailBreached(): email = input(default_color + "Email Address> " + reset) print() url = f"https://haveibeenpwned.com/unifiedsearch/{email}" options = EdgeOptions() options.use_chromium = True options.add_argument('ignore-certificate-errors') options.add_argument("--log-level=OFF") driver = Edge(options=options, executable_path=r"WebDriver\msedgedriver.exe") driver.get(url) try: dirty_response = \ driver.page_source.split( '<html><head></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">')[1] raw_json = dirty_response.split("</pre></body></html>")[0] res = json.loads(raw_json) driver.close() print(heading_color + "---------------------Check For Breached Email--------------" + reset) for i in range(len(res['Breaches'])): print( content_color + f"Name : {res['Breaches'][i]['Name']}\n" f"Title : {res['Breaches'][i]['Title']}\n" f"Domain : {res['Breaches'][i]['Domain']}\n" f"Breached On : {res['Breaches'][i]['BreachDate']}\n{reset}" f"{heading_color}--------------------------------------\n{reset}" ) if res['Pastes'] is None: print(fg("red") + "[*] No Public Paste Found" + reset) else: print(heading_color + "[*] Public Paste Found\n" + reset) pastes = res["Pastes"] for i in range(len(pastes)): print(content_color + f"Source : {pastes[i]['Source']}\n" f"Title : {pastes[i]['Title']}\n" f"Date : {pastes[i]['Date']}\n" f"EmailCount : {pastes[i]['EmailCount']}\n") if pastes[i]['Source'] == "Pastebin": print( f"Paste URL : https://pastebin.com/{pastes[i]['Id']}\n{reset}" f"{heading_color}----------------------------------------------------{reset}" ) except: print( fg("red") + f"[*] The provided Email {email} is not breached!" + reset) pass
def __init__(self, email, password, headless=True): self.email = email self.password = password self.available = False self.booked = False self.reservations_left = False options = EdgeOptions() options.add_argument("--log-level=3") options.use_chromium = True if headless: options.add_argument("headless") self.driver = Edge(options=options) print("Starting web driver...")
def __edge_driver(browser_options): edge_options = EdgeOptions() edge_options.use_chromium = True if browser_options.headless: edge_options.add_argument('headless') if browser_options.browser_binary_location: edge_options.binary_location = browser_options.browser_binary_location if browser_options.operating_system: edge_options.set_capability('platform', 'LINUX') if browser_options.webdriver_location: return Edge(options=edge_options, executable_path=browser_options.webdriver_location) return EdgeDriver.WebDriver(options=edge_options)
def start_msedge(browser_config): # need 'pip install msedge-selenium-tools' for Edge from msedge.selenium_tools import Edge, EdgeOptions options = EdgeOptions() options.use_chromium = True user_data_dir = settings.Config.get(browser_config, 'user_data_dir', fallback='') if user_data_dir: options.add_argument(f'user-data-dir={user_data_dir}') edgedriver = settings.Config[browser_config]['driver'] driver = Edge(executable_path=edgedriver, options=options) return driver
def spider_opened(self, spider): # # 在scrapy中创建driver对象,尽可能少的创建该对象。 # # 1. 在初始化方法中创建driver对象; # # 2. 在open_spider中创建driver对象; # # 3. 不要将driver对象的创建放在process_request(); options = EdgeOptions() # # 使用谷歌内核(加了反而报错,说chrome is not reachable,并且此时driver名字必须为msedgedriver.exe,正常应该必须是MicrosoftWebDriver.exe) # options.use_chromium = True # 浏览器可执行文件绝对路径 - 手动指定使用的浏览器位置 options.binary_location = r"MicrosoftWebDriver.exe" # options.add_argument("--remote-debugging-port=59692") # # 浏览器不提供可视化页面. linux下如果系统不支持可视化不加这条会启动失败 # options.headless = True # options.add_argument("--headless") # “–no-sandbox”参数是让Chrome在root权限下跑 # options.add_argument('--no-sandbox') # options.add_argument('--disable-dev-shm-usage') # 谷歌文档提到需要加上这个属性来规避bug # options.add_argument("disable-gpu") # 隐私模式 # options.add_argument("-inprivate") options.add_argument( "user-data-dir=C:\\Users\\wangy\\AppData\\Local\\Microsoft\\Edge\\User Data" ) options.add_argument( "profile-directory=C:\\Users\\wangy\\AppData\\Local\\Microsoft\\Edge\\User Data\\Default" ) # options.binary_location = r"C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe" self.driver = Edge(options=options) # give time to login manually self.driver.get('https://i.cnblogs.com/posts?pageSize=100') time.sleep(30) spider.logger.info('Spider opened: %s' % spider.name)
def chinahpo(hpo): # 如果使用IP池,则不进行随机等待 # s = random.randint(5, 10) # print("等待 " + str(s) + "秒") # time.sleep(s) ip = randomIP() # ip = "socks5://127.0.0.1:1080" print("使用IP " + ip) options = EdgeOptions() options.use_chromium = True options.add_argument("headless") # options.add_argument("disable-gpu") options.add_argument("--proxy-server={ip}".format(ip=ip)) options.add_argument("--disable-blink-features") options.add_argument("--disable-blink-features=AutomationControlled") options.add_argument("start-maximized") options.add_experimental_option("excludeSwitches", ["enable-automation"]) options.add_experimental_option("useAutomationExtension", False) msedge = r"C:\Program Files (x86)\Microsoft\Edge\Application\msedgedriver.exe" driver = Edge(options=options, executable_path=msedge) script = "Object.defineProperty(navigator, 'webdriver', {get: () => undefined})" driver.execute_script(script) UA = randomUA() # UA = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.53 Safari/537.36" driver.execute_cdp_cmd("Network.setUserAgentOverride", {"userAgent": UA}) print(driver.execute_script("return navigator.userAgent;")) hpid = hpo.split(":")[1] url = "http://www.chinahpo.org/#/searchList?trigger=1&tabType=1&searchContent=HP%3A{hpid}".format( hpid=hpid) try: driver.get(url) strtemp = url print("网址:", strtemp) except Exception: print("get page error", hpo) time.sleep(2) with open("html2/hp_" + hpid + ".html", "a+", encoding="utf-8") as f: f.write(str(driver.page_source)) driver.close() fin = open("finish.txt", "a") fin.write(hpo + "\n") fin.close()
def GetPrices(item_ID, price_limit): options = EdgeOptions() options.use_chromium = True options.add_argument("headless") options.add_argument("disable-gpu") driver = webdriver.Chrome('C:/Users/kevin/Documents/PyCharmProjects/TCC-Scraper/msedgedriver.exe', options=options) driver.get( f'https://us.tamrieltradecentre.com/pc/Trade/SearchResult?ItemID={item_ID}&SortBy=Price&Order=asc&page=1') item_name = driver.find_element_by_xpath('//*[@id="search-result-view"]/div[1]/div/table/tbody/tr[1]/td[1]/div[1]') duration = 1000 freq = 440 dict_price = {} dict_time = {} dict_location = {} dict_guildname = {} for i in range(1, 20, 2): dict_price[i] = f'//*[@id="search-result-view"]/div[1]/div/table/tbody/tr[{i}]/td[4]/span[1]' dict_time[i] = f'//*[@id="search-result-view"]/div[1]/div/table/tbody/tr[{i}]/td[5]' dict_location[i] = f'//*[@id="search-result-view"]/div[1]/div/table/tbody/tr[{i}]/td[3]/div[1]' dict_guildname[i] = f'//*[@id="search-result-view"]/div[1]/div/table/tbody/tr[{i}]/td[3]/div[2]' for i in range(1, 20, 2): price = driver.find_element_by_xpath(dict_price[i]) price_str = (price.text.replace(',', '')) price_float = float(price_str) price_int = int(price_float) age = driver.find_element_by_xpath(dict_time[i]) location = driver.find_element_by_xpath(dict_location[i]) guildname = driver.find_element_by_xpath(dict_guildname[i]) if '5 Hour ago' == age.text or '2 Minute ago' == age.text or '3 Minute ago' == age.text: if price_int < price_limit: print(f'{item_name.text}: {price.text} , Posted: {age.text}') print(f'Location: {location.text}, Guild Name: {guildname.text}') # winsound.Beep(freq,duration) print(f'Price Checked for: {item_name.text},', 'at', ShowTime(), 'PM', '- Waiting 10 Seconds') time.sleep(10)
def create_edge_driver() -> webdriver.Edge: """Create an instance of edge driver Returns: webdriver.Edge: chrome driver WARNING: driver is activated without headless mode """ # options options = EdgeOptions() options.use_chromium = True # options.add_argument("headless") # TODO set user agent options.add_argument("disable-gpu") # create driver driver = Edge(executable_path=EdgeChromiumDriverManager().install(), options=options) return driver
def result(request): data = dict() if request.method == 'POST': nickname = request.POST.get("nick_input", None) if not nickname: return render(request, 'chk/index.html', data) data['nickname'] = nickname options = EdgeOptions() options.use_chromium = True options.add_argument('--headless') driver = Edge( executable_path=r'D:\Git\namechk_avatar\namechk\msedgedriver.exe', options=options) check_list = [check_youtube, check_twitter, check_insta, check_vk] if not os.path.exists("chk/static/chk/img/" + nickname): os.mkdir("chk/static/chk/img/" + nickname) for check in check_list: check(nickname, data, driver) check_avatars(data, nickname) return render(request, 'chk/index.html', data)
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 __init__(self, df_dir='src/data', df_path='data/dataframe.csv', df_file_name='new_dataframe.csv', cookies_path='src/cookies/cookies.pkl', driver_path='', _driver=None, _check=False): self.df_dir = df_dir self.df_path = df_path if self.read_file is None else f'data/{self.read_file}' self.df_file_name = df_file_name self.cookies_path = cookies_path self.driver_path = driver_path self.driver = _driver self.check = _check if self.driver is None: # Selenium capabilities and other settings options = Options() # Options for microsoft edge (chromium) edge_options = EdgeOptions() edge_options.use_chromium = True edge_options.add_argument('log-level=3') edge_options.add_argument('lang=en') edge_options.add_argument('--start-maximized') # Main webdriver self.driver = Edge(executable_path=self.driver_path, options=edge_options) self._check_connection()
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 createDriver(self, browser, driverPath, headless=None): """ Start selenium web driver Args: browser (str): Browser type driverPath (Path): Path to driver headless (bool): Headless bool Returns: driver: selenium driver """ self.headless = headless if browser == "Edg": edge_options = EdgeOptions() if self.headless: # make Edge headless edge_options.use_chromium = True edge_options.add_argument("headless") edge_options.add_argument("disable-gpu") edge_options.add_argument("--log-level=3") edge_options.add_experimental_option( 'excludeSwitches', ['enable-logging'] ) # edge_options.page_load_strategy("eager") self.driver = Edge( executable_path=str(driverPath), options=edge_options ) elif browser == "Chrome": chrome_options = Options() if self.headless: chrome_options.add_argument("--headless") chrome_options.add_argument("--log-level=3") chrome_options.add_experimental_option( 'excludeSwitches', ['enable-logging'] ) # chrome_options.page_load_strategy("eager") # don't know the chrome command self.driver = webdriver.Chrome( executable_path=str(driverPath), options=chrome_options ) else: print("Browser not supported yet") self.driver.set_window_size(1800, 1080) self.driver.set_page_load_timeout(100000) return self.driver
def verify_account(url): runner = cfscrape.create_scraper() options = EdgeOptions() options.use_chromium = True options.add_argument("disable-gpu") options.add_argument('headless') options.add_argument('ignore-certificate-errors') driver = Edge(options=options, executable_path=r"WebDriver\msedgedriver.exe") driver.get(url) link = driver.find_element_by_xpath( r"//a[@style='text-decoration: none; color: #1ed760']").get_attribute( 'href') driver.close() result = runner.get(url=link).text if "all set" in result: window["Verified_Email"].print(f"[*] Verification Completed") else: window["Verified_Email"].print(f"[*] {result}")
def Webpage_login(self,scanner_url, username, password): """edge浏览器""" edgedriver = "./msedgedriver.exe" #这里写本地的edgedriver的所在路径 edge_options = EdgeOptions() edge_options.use_chromium = True # 使用谷歌内核 edge_options.add_argument("disable-gpu") # 禁用gpu加速,避免bug edge_options.add_argument('start-maximized') # 启动最大化 edge_options.add_argument('--ignore-certificate-errors') # 绕过“你的连接不是专用连接” edge_options.add_experimental_option('useAutomationExtension', False) # 关闭“Microsoft Edge正由自动测试软件控制。” edge_options.add_experimental_option('excludeSwitches', ['enable-automation']) driver = Edge(executable_path=edgedriver,options=edge_options) driver.get(scanner_url) time.sleep(1) driver.find_element_by_id('username').click() driver.find_element_by_id('username').send_keys(username) driver.find_element_by_id('password').click() driver.find_element_by_id('password').send_keys(password) driver.find_element_by_class_name('submit').click() time.sleep(1) driver.find_element_by_id('two01').click()
from msedge.selenium_tools import Edge, EdgeOptions from win10toast import ToastNotifier from email.message import EmailMessage import os, re, base64, smtplib, datetime, win32gui, time as tm, requests, zipfile, io #created for home project #start :) flag = 0 access_key = 1 lst = list() date_time = str(datetime.datetime.now()) toaster = ToastNotifier() edge_options = EdgeOptions() edge_options.use_chromium = True edge_options.add_argument("--log-level=3") edge_options.add_argument("headless") edge_options.add_argument("disable-gpu") def handle_log(flag): with open('path\logs.txt', 'a') as f: if flag == 1: f.write(date_time + ' 1. Success (1 time trial)\n') elif flag == 2: f.write(date_time + ' 2. Success (2 times trial)\n') elif flag == 3: f.write(date_time + ' 3. Failed\n') elif flag == 4: f.write(date_time + ' 4. Site is not accessible (Connection problem)\n') elif flag == 6: f.write(date_time + " 6. The system couldn't updated driver by it own! Please check the log file!\n")