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 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 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()
class AddAToDoText(unittest.TestCase): def setUp(self): options = EdgeOptions() options.use_chromium = True options.binary_location = "C:\\Program Files (x86)\\Microsoft\\Edge Dev\\Application\\msedge.exe" dir = os.path.dirname(os.path.realpath(__file__)) edge_driver_path = dir + "\\edgedriver_win64\\msedgedriver.exe" self.driver = Edge(options=options, executable_path=edge_driver_path) self.driver.implicitly_wait(30) self.driver.maximize_window() self.driver.get("http://*****:*****@class='toggle']/following-sibling::label").get_attribute("innerText") self.assertEqual("The test is adding this todo", addedToDoText) def tearDown(self): self.driver.quit()
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
class QCourse: def __init__(self): # 初始化options self.prefs = {"download.default_directory": os.getcwd()} self.options = EdgeOptions() self.options.use_chromium = True self.options.add_argument("log-level=3") self.options.add_experimental_option('excludeSwitches', ['enable-logging']) self.options.add_experimental_option('prefs', self.prefs) self.options.add_argument("--mute-audio") self.login_url = 'https://ke.qq.com/' # Mac 下配置 options 报错,故扔掉了。如果是 Windows,请使用路径下面的 msedgedriver.exe。(注释掉下面一行,放开下下行) self.driver = Edge(executable_path=os.path.join( BASE_DIR, 'msedgedriver'), capabilities={}) # self.driver = Edge(executable_path='msedgedriver.exe', options=self.options) # self.driver = Edge(executable_path=os.path.join(BASE_DIR, 'msedgedriver'), capabilities=desired_cap, options=self.options) def login(self): self.driver.get('https://ke.qq.com/') self.driver.find_element_by_id('js_login').click() time.sleep(1) WebDriverWait(self.driver, 300).until_not( EC.presence_of_element_located((By.CLASS_NAME, 'ptlogin-mask'))) dictCookies = self.driver.get_cookies() jsonCookies = json.dumps(dictCookies) with open('cookies.json', 'w') as f: f.write(jsonCookies) print('登陆成功!') def close(self): self.driver.close() def _get_video(self, video_url=None, path=None, index=None): if not video_url: print('请输入视频url!') # 跳转一次没法跳转,可能是设置了preventDefault self.driver.get(video_url) self.driver.get(video_url) try: # 等待视频开始播放 WebDriverWait(self.driver, 60).until( EC.presence_of_element_located((By.CLASS_NAME, 'loki-time'))) WebDriverWait( self.driver, 60).until_not(lambda driver: driver.find_element_by_class_name( 'loki-time').get_attribute("innerHTML") == '00:00 / 00:00') title = self.driver.title if index is not None: title = "{:02}_{}".format(index, title) networks = self.driver.execute_script( 'return window.performance.getEntries()') ts_url = key_url = '' for network in networks: if '.ts?start' in network.get('name'): ts_url = network.get('name') elif 'get_dk' in network.get('name'): key_url = network.get('name') download_single(ts_url, key_url, title, path) except TimeoutException: # 如果超时,可能是下载的资料,则查看是否有下载按钮,有的话,就下载 title = self.driver.title try: down_btn = self.driver.find_element_by_class_name( 'download-btn') if down_btn.text == '下载资料': url = down_btn.get_attribute('href') download_zip_doc(url, title, path) except Exception: print('没有找到视频,也没有找到可下载的文件,可能是还未开课') def get_video(self, video_url=None, path=None, index=None): if isinstance(video_url, list): for url in video_url: if url: self._get_video(url, path, index) else: self._get_video(video_url, path, index) def load_cookies(self): if not os.path.exists('cookies.json'): self.login() with open('cookies.json', 'r') as f: listCookies = json.loads(f.read()) self.driver.get(self.login_url) for cookie in listCookies: self.driver.add_cookie({ 'domain': '.ke.qq.com', 'httpOnly': cookie['httpOnly'], 'name': cookie['name'], 'path': '/', 'secure': cookie['secure'], 'value': cookie['value'] }) for cookie in utils.get_cookies_dic_list(): self.driver.add_cookie({ 'domain': '.ke.qq.com', 'httpOnly': False, 'name': cookie[0], 'path': '/', 'secure': False, 'value': cookie[1] })
def run(): email = read_decrypt(efile) password = read_decrypt(pfile) cemail = str(email) cpassword = str(password) 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 Established.') l1 = tk.Label(top, text=" Connection Established. ", bg='white') l1.config(font=('helvetica', 15, "bold")) canvas.create_window(200, 410, window=l1) 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(resource_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!") l1 = tk.Label(top, text=" Page is Ready. ", bg='white') l1.config(font=('helvetica', 15, "bold")) canvas.create_window(200, 410, window=l1) 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() try: driver.find_element_by_class_name('gokan-alert-error') print("Invalid Credintials") l1 = tk.Label(top, text=" Invalid Credintials. ", bg='white') l1.config(font=('helvetica', 15, "bold")) canvas.create_window(200, 410, window=l1) time.sleep(3) driver.quit() except NoSuchElementException: print('Login sucessful') l1 = tk.Label(top, text=" Login Successful. ", bg='white') l1.config(font=('helvetica', 15, "bold")) canvas.create_window(200, 410, window=l1) except TimeoutException: print("Login Error!") l1 = tk.Label(top, text=" Login Error! ", bg='white') l1.config(font=('helvetica', 15, "bold")) canvas.create_window(200, 410, window=l1) # [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') l1 = tk.Label(top, text=" Points Already Collected. ", bg='white') l1.config(font=('helvetica', 15, "bold")) canvas.create_window(200, 410, window=l1) time.sleep(3) driver.quit() print('Automation completed') l1 = tk.Label(top, text=" Automation Completed. ", bg='white') l1.config(font=('helvetica', 15, "bold")) canvas.create_window(200, 410, window=l1) time.sleep(3) write_time() driver.quit() except requests.ConnectionError: print('Could not connect') l1 = tk.Label(top, text=" Couldn't Connect. ", bg='white') l1.config(font=('helvetica', 15, "bold")) canvas.create_window(200, 410, window=l1) driver.quit()
class Web_scraping: def __init__(self): '''Initialize the application''' #As using the standard webdriver was giving warnings and messing up the terminal, I used the code below to show just what I want. self.opt = EdgeOptions() self.opt.add_experimental_option('excludeSwitches', ['enable-logging']) self.opt.add_argument("--start-maximized") self.opt.use_chromium = True self.driver = Edge( executable_path= r"C:\\Program Files (x86)\\Microsoft\\Edge\\Application\\msedgedriver.exe", options=self.opt) def games_link(self): '''Create a list with all season event's link and then create another list with all event's link''' #Creating list with the all season's link self.season_pages_list = [] for y in range(2008, 2022): #Creating the seasons links as str and adding it to a list self.season_link = 'https://www.worldsurfleague.com/events/' + str( y) + '/mct?all=1' self.season_pages_list.append(self.season_link) #Creating a list with the all event's link from each season self.events_link_list = [] for link in self.season_pages_list: self.driver.get(link) #Getting all the events links as selenium format self.event_links = self.driver.find_elements_by_xpath( '//a[@class="event-schedule-details__event-name"]') #Finding the class status completed is needed once it's possible to stop the process on it. self.event_status = self.driver.find_elements_by_xpath( '//span[@class="event-status event-status--completed"]') #Creating event's link list for i in range(0, len(self.event_status)): #Getting the links for each event as a str format self.link_attribute = self.event_links[i].get_attribute('href') self.events_link_list.append(self.link_attribute) with open('events.txt', 'w') as f: for item in self.events_link_list: f.write("%s\n" % item) print('FINISHED') #Getting data inside which event def event_stats(self): #TXT file with all events link to list self.events_link = [ line[0] for line in pd.read_fwf('events.txt', header=None).values.tolist() ] #for link in self.events_link: self.driver.get(self.events_link[0]) #list of all heats self.all_heats_lists = [] while True: #Gets all the waves scores, athletes, nationalities and heats on the page as list. self.waves = self.driver.find_elements_by_xpath( '//*[@class="score"]') self.athletes = self.driver.find_elements_by_xpath( '//*[@class="athlete-name"]') self.nationalities = self.driver.find_elements_by_xpath( '//*[@class="athlete-country-flag"]') self.heat = self.driver.find_elements_by_xpath( '//*[@class="new-heat-hd-name"]') #Gets the round name self.round = self.driver.find_elements_by_xpath( '//*[@class="carousel-item is-selected"]') if len(self.round) == 0: self.round = self.driver.find_elements_by_xpath( '//*[@class="carousel-item last is-selected"]') #Gets the number of surfers and heats on the round, such as the avg surfers per heat (must be 2 or 3) self.number_of_surfers = int(len(self.waves) / 18) #As the final round only has 1 heat, the find_element_by_class_name gets a 'WebDriver' element and not a list self.number_of_heats = len(self.heat) self.surfers_per_heat = int(self.number_of_surfers / self.number_of_heats) #there's a count to deduct 1 stage and gets the round name for each round. self.count = 0 #Gets the stats for each heat self.heat_data = [] for g in range(0, self.number_of_heats): #Page stats #Event stats self.event_turn = self.driver.find_element_by_class_name( 'event-meta-tour-info').text.split()[2][1:] self.event_period = self.driver.find_element_by_class_name( 'event-schedule__date-range').text self.event_name = self.driver.find_element_by_class_name( 'event-title').text.split('\n')[0] self.event_local = re.split( r'(\d+)', self.driver.find_element_by_class_name( 'event-meta-tour-info').text)[2] self.avg_wave_score = re.split( r'(\d+\.\d+)', self.driver.find_element_by_class_name( 'new-heat-hd-status').text)[1] #Heat's id for the database self.heat_id = (f'heat{g + 1}' + self.round[0].text + self.event_turn + self.event_period[-4:]).lower() #Surfer stats self.surfer1 = self.athletes[g * 2].text self.surfer1_nat = self.nationalities[g * 2].get_attribute('title') self.surfer1_best_w1 = self.waves[g * 18 + (1 - 1)].text self.surfer1_best_w2 = self.waves[g * 18 + (2 - 1)].text self.surfer1_total = self.waves[g * 18 + (3 - 1)].text self.surfer1_w01 = self.waves[g * 18 + (4 - 1)].text self.surfer1_w02 = self.waves[g * 18 + (5 - 1)].text self.surfer1_w03 = self.waves[g * 18 + (6 - 1)].text self.surfer1_w04 = self.waves[g * 18 + (7 - 1)].text self.surfer1_w05 = self.waves[g * 18 + (8 - 1)].text self.surfer1_w06 = self.waves[g * 18 + (9 - 1)].text self.surfer1_w07 = self.waves[g * 18 + (10 - 1)].text self.surfer1_w08 = self.waves[g * 18 + (11 - 1)].text self.surfer1_w09 = self.waves[g * 18 + (12 - 1)].text self.surfer1_w10 = self.waves[g * 18 + (13 - 1)].text self.surfer1_w11 = self.waves[g * 18 + (14 - 1)].text self.surfer1_w12 = self.waves[g * 18 + (15 - 1)].text self.surfer1_w13 = self.waves[g * 18 + (16 - 1)].text self.surfer1_w14 = self.waves[g * 18 + (17 - 1)].text self.surfer1_w15 = self.waves[g * 18 + (18 - 1)].text #Surfer 2 stats self.surfer2 = self.athletes[g * 2 + 1].text self.surfer2_nat = self.nationalities[g * 2 + 1].get_attribute('title') self.surfer2_best_w1 = self.waves[g * 18 + (19 - 1)].text self.surfer2_best_w2 = self.waves[g * 18 + (20 - 1)].text self.surfer2_total = self.waves[g * 18 + (21 - 1)].text self.surfer2_w01 = self.waves[g * 18 + (22 - 1)].text self.surfer2_w02 = self.waves[g * 18 + (23 - 1)].text self.surfer2_w03 = self.waves[g * 18 + (24 - 1)].text self.surfer2_w04 = self.waves[g * 18 + (25 - 1)].text self.surfer2_w05 = self.waves[g * 18 + (26 - 1)].text self.surfer2_w06 = self.waves[g * 18 + (27 - 1)].text self.surfer2_w07 = self.waves[g * 18 + (28 - 1)].text self.surfer2_w08 = self.waves[g * 18 + (29 - 1)].text self.surfer2_w09 = self.waves[g * 18 + (30 - 1)].text self.surfer2_w10 = self.waves[g * 18 + (31 - 1)].text self.surfer2_w11 = self.waves[g * 18 + (32 - 1)].text self.surfer2_w12 = self.waves[g * 18 + (33 - 1)].text self.surfer2_w13 = self.waves[g * 18 + (34 - 1)].text self.surfer2_w14 = self.waves[g * 18 + (35 - 1)].text self.surfer2_w15 = self.waves[g * 18 + (36 - 1)].text #Inputing all variables into the heat_data list self.heat_data.append(self.heat_id) self.heat_data.append(self.event_name) self.heat_data.append(self.event_local) self.heat_data.append(self.event_turn) self.heat_data.append(self.event_period) self.heat_data.append(self.avg_wave_score) self.heat_data.append(self.surfer1) self.heat_data.append(self.surfer1_nat) self.heat_data.append(self.surfer1_best_w1) self.heat_data.append(self.surfer1_best_w2) self.heat_data.append(self.surfer1_total) self.heat_data.append(self.surfer1_w01) self.heat_data.append(self.surfer1_w02) self.heat_data.append(self.surfer1_w03) self.heat_data.append(self.surfer1_w04) self.heat_data.append(self.surfer1_w05) self.heat_data.append(self.surfer1_w06) self.heat_data.append(self.surfer1_w07) self.heat_data.append(self.surfer1_w08) self.heat_data.append(self.surfer1_w09) self.heat_data.append(self.surfer1_w10) self.heat_data.append(self.surfer1_w11) self.heat_data.append(self.surfer1_w12) self.heat_data.append(self.surfer1_w13) self.heat_data.append(self.surfer1_w14) self.heat_data.append(self.surfer1_w15) self.heat_data.append(self.surfer2) self.heat_data.append(self.surfer2_nat) self.heat_data.append(self.surfer2_best_w1) self.heat_data.append(self.surfer2_best_w2) self.heat_data.append(self.surfer2_total) self.heat_data.append(self.surfer2_w01) self.heat_data.append(self.surfer2_w02) self.heat_data.append(self.surfer2_w03) self.heat_data.append(self.surfer2_w04) self.heat_data.append(self.surfer2_w05) self.heat_data.append(self.surfer2_w06) self.heat_data.append(self.surfer2_w07) self.heat_data.append(self.surfer2_w08) self.heat_data.append(self.surfer2_w09) self.heat_data.append(self.surfer2_w10) self.heat_data.append(self.surfer2_w11) self.heat_data.append(self.surfer2_w12) self.heat_data.append(self.surfer2_w13) self.heat_data.append(self.surfer2_w14) self.heat_data.append(self.surfer2_w15) self.all_heats_lists.append(self.heat_data.copy()) self.heat_data.clear() #Click on the previous round botton print(self.all_heats_lists) try: self.prev_round_bt = self.driver.find_element_by_xpath( '//*[@class="flickity-button-icon"]').click() except: self.prev_round_bt = self.driver.find_element_by_xpath( '//*[@class="flickity-button-icon"]') self.driver.execute_script("arguments[0].scrollIntoView();", self.prev_round_bt) time.sleep(.5) self.prev_round_bt.click() time.sleep(2.5)
from msedge.selenium_tools import options from msedge.selenium_tools import Edge, EdgeOptions from time import sleep options = EdgeOptions() options.use_chromium = True driver = Edge(options=options) options.add_experimental_option("excludeSwitches", ['enable-automation']) kodSekolah = "NEB2054" driver.get( "https://docs.google.com/forms/d/e/1FAIpQLSduotkz5L48QN_vXksFCerIfHF4ihDQyxlARbL4BneSeqzNWg/viewform" ) print("Google sites opened") sleep(0.5) KodSekolah_box = driver.find_element_by_class_name( "quantumWizTextinputPaperinputEl") KodSekolah_box.send_keys(kodSekolah) sleep(0.2)