2023-02-06, support Edge browser.
							parent
							
								
									d9c2695fc4
								
							
						
					
					
						commit
						c94e31f826
					
				| 
						 | 
				
			
			@ -389,12 +389,23 @@ def get_driver_by_config(config_dict, driver_type):
 | 
			
		|||
 | 
			
		||||
    if browser == "firefox":
 | 
			
		||||
        # default os is linux/mac
 | 
			
		||||
        # download url: https://github.com/mozilla/geckodriver/releases
 | 
			
		||||
        chromedriver_path = os.path.join(webdriver_path,"geckodriver")
 | 
			
		||||
        if platform.system().lower()=="windows":
 | 
			
		||||
            chromedriver_path = os.path.join(webdriver_path,"geckodriver.exe")
 | 
			
		||||
 | 
			
		||||
        firefox_service = Service(chromedriver_path)
 | 
			
		||||
        driver = webdriver.Firefox(service=firefox_service)
 | 
			
		||||
        webdriver_service = Service(chromedriver_path)
 | 
			
		||||
        driver = webdriver.Firefox(service=webdriver_service)
 | 
			
		||||
 | 
			
		||||
    if browser == "edge":
 | 
			
		||||
        # default os is linux/mac
 | 
			
		||||
        # download url: https://developer.microsoft.com/zh-tw/microsoft-edge/tools/webdriver/
 | 
			
		||||
        chromedriver_path = os.path.join(webdriver_path,"msedgedriver")
 | 
			
		||||
        if platform.system().lower()=="windows":
 | 
			
		||||
            chromedriver_path = os.path.join(webdriver_path,"msedgedriver.exe")
 | 
			
		||||
 | 
			
		||||
        webdriver_service = Service(chromedriver_path)
 | 
			
		||||
        driver = webdriver.Edge(service=webdriver_service)
 | 
			
		||||
 | 
			
		||||
    #print("try to close opened tabs.")
 | 
			
		||||
    '''
 | 
			
		||||
| 
						 | 
				
			
			@ -5372,6 +5383,7 @@ def urbtix_performance_confirm_dialog_popup(driver):
 | 
			
		|||
    
 | 
			
		||||
    return ret
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def urbtix_main(driver, url, config_dict):
 | 
			
		||||
    # http://msg.urbtix.hk
 | 
			
		||||
    waiting_for_access_url = ['/session/landing-timer/','msg.urbtix.hk','busy.urbtix.hk']
 | 
			
		||||
| 
						 | 
				
			
			@ -7201,7 +7213,7 @@ def main():
 | 
			
		|||
    answer_index = -1
 | 
			
		||||
    kktix_register_status_last = None
 | 
			
		||||
 | 
			
		||||
    DISCONNECTED_MSG = 'Unable to evaluate script: no such window: target window already closed'
 | 
			
		||||
    DISCONNECTED_MSG = ': target window already closed'
 | 
			
		||||
 | 
			
		||||
    ocr = None
 | 
			
		||||
    Captcha_Browser = None
 | 
			
		||||
| 
						 | 
				
			
			@ -7244,14 +7256,26 @@ def main():
 | 
			
		|||
                    driver.switch_to.window(driver.window_handles[0])
 | 
			
		||||
                    driver.switch_to.default_content()
 | 
			
		||||
                    time.sleep(0.2)
 | 
			
		||||
                else:
 | 
			
		||||
                    if DISCONNECTED_MSG in driver.get_log('driver')[-1]['message']:
 | 
			
		||||
            except Exception as excSwithFail:
 | 
			
		||||
                #print("excSwithFail:", excSwithFail)
 | 
			
		||||
                pass
 | 
			
		||||
            if window_handles_count==0:
 | 
			
		||||
                try:
 | 
			
		||||
                    driver_log = driver.get_log('driver')[-1]['message']
 | 
			
		||||
                    print("get_log:", driver_log)
 | 
			
		||||
                    if DISCONNECTED_MSG in driver_log:
 | 
			
		||||
                        print('quit bot by NoSuchWindowException')
 | 
			
		||||
                        driver.quit()
 | 
			
		||||
                        sys.exit()
 | 
			
		||||
                        break
 | 
			
		||||
            except Exception as excSwithFail:
 | 
			
		||||
                pass
 | 
			
		||||
                except Exception as excGetDriverMessageFail:
 | 
			
		||||
                    #print("excGetDriverMessageFail:", excGetDriverMessageFail)
 | 
			
		||||
                    except_string = str(excGetDriverMessageFail)
 | 
			
		||||
                    if 'HTTP method not allowed' in except_string:
 | 
			
		||||
                        print('quit bot by close browser')
 | 
			
		||||
                        driver.quit()
 | 
			
		||||
                        sys.exit()
 | 
			
		||||
                        break
 | 
			
		||||
 | 
			
		||||
        except UnexpectedAlertPresentException as exc1:
 | 
			
		||||
            # PS: DON'T remove this line.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										37
									
								
								settings.py
								
								
								
								
							
							
						
						
									
										37
									
								
								settings.py
								
								
								
								
							| 
						 | 
				
			
			@ -19,7 +19,7 @@ import json
 | 
			
		|||
import webbrowser
 | 
			
		||||
import pyperclip
 | 
			
		||||
 | 
			
		||||
CONST_APP_VERSION = u"MaxBot (2023.02.05)"
 | 
			
		||||
CONST_APP_VERSION = u"MaxBot (2023.02.06)"
 | 
			
		||||
 | 
			
		||||
CONST_FROM_TOP_TO_BOTTOM = u"from top to bottom"
 | 
			
		||||
CONST_FROM_BOTTOM_TO_TOP = u"from bottom to top"
 | 
			
		||||
| 
						 | 
				
			
			@ -43,6 +43,9 @@ URL_DONATE = 'https://max-everyday.com/about/#donate'
 | 
			
		|||
URL_HELP = 'https://max-everyday.com/2018/03/tixcraft-bot/'
 | 
			
		||||
URL_RELEASE = 'https://github.com/max32002/tixcraft_bot/releases'
 | 
			
		||||
URL_FB = 'https://www.facebook.com/maxbot.ticket'
 | 
			
		||||
URL_CHROME_DRIVER = 'https://chromedriver.chromium.org/'
 | 
			
		||||
URL_FIREFOX_DRIVER = 'https://github.com/mozilla/geckodriver/releases'
 | 
			
		||||
URL_EDGE_DRIVER = 'https://developer.microsoft.com/zh-tw/microsoft-edge/tools/webdriver/'
 | 
			
		||||
 | 
			
		||||
def load_translate():
 | 
			
		||||
    translate = {}
 | 
			
		||||
| 
						 | 
				
			
			@ -1563,7 +1566,7 @@ def AdvancedTab(root, config_dict, language_code, UI_PADDING_X):
 | 
			
		|||
 | 
			
		||||
    global combo_browser
 | 
			
		||||
    combo_browser = ttk.Combobox(frame_group_header, state="readonly")
 | 
			
		||||
    combo_browser['values']= ("chrome","firefox")
 | 
			
		||||
    combo_browser['values']= ("chrome","firefox","edge")
 | 
			
		||||
    combo_browser.set(config_dict['browser'])
 | 
			
		||||
    combo_browser.grid(column=1, row=group_row_count, sticky = W)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1776,6 +1779,34 @@ def AboutTab(root, language_code):
 | 
			
		|||
    lbl_fb_fans_url.grid(column=1, row=group_row_count, sticky = W)
 | 
			
		||||
    lbl_fb_fans_url.bind("<Button-1>", lambda e: open_url(URL_FB))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    group_row_count +=1
 | 
			
		||||
 | 
			
		||||
    lbl_chrome_driver = Label(frame_group_header, text=u'Chrome Driver')
 | 
			
		||||
    lbl_chrome_driver.grid(column=0, row=group_row_count, sticky = E)
 | 
			
		||||
 | 
			
		||||
    lbl_chrome_driver_url = Label(frame_group_header, text=URL_CHROME_DRIVER, fg="blue", cursor="hand2")
 | 
			
		||||
    lbl_chrome_driver_url.grid(column=1, row=group_row_count, sticky = W)
 | 
			
		||||
    lbl_chrome_driver_url.bind("<Button-1>", lambda e: open_url(URL_CHROME_DRIVER))
 | 
			
		||||
 | 
			
		||||
    group_row_count +=1
 | 
			
		||||
 | 
			
		||||
    lbl_firefox_driver = Label(frame_group_header, text=u'Firefox Driver')
 | 
			
		||||
    lbl_firefox_driver.grid(column=0, row=group_row_count, sticky = E)
 | 
			
		||||
 | 
			
		||||
    lbl_firefox_driver_url = Label(frame_group_header, text=URL_FIREFOX_DRIVER, fg="blue", cursor="hand2")
 | 
			
		||||
    lbl_firefox_driver_url.grid(column=1, row=group_row_count, sticky = W)
 | 
			
		||||
    lbl_firefox_driver_url.bind("<Button-1>", lambda e: open_url(URL_FIREFOX_DRIVER))
 | 
			
		||||
 | 
			
		||||
    group_row_count +=1
 | 
			
		||||
 | 
			
		||||
    lbl_edge_driver = Label(frame_group_header, text=u'Edge Driver')
 | 
			
		||||
    lbl_edge_driver.grid(column=0, row=group_row_count, sticky = E)
 | 
			
		||||
 | 
			
		||||
    lbl_edge_driver_url = Label(frame_group_header, text=URL_EDGE_DRIVER, fg="blue", cursor="hand2")
 | 
			
		||||
    lbl_edge_driver_url.grid(column=1, row=group_row_count, sticky = W)
 | 
			
		||||
    lbl_edge_driver_url.bind("<Button-1>", lambda e: open_url(URL_EDGE_DRIVER))
 | 
			
		||||
 | 
			
		||||
    frame_group_header.grid(column=0, row=row_count)
 | 
			
		||||
 | 
			
		||||
def get_action_bar(root, language_code):
 | 
			
		||||
| 
						 | 
				
			
			@ -1856,7 +1887,7 @@ def main():
 | 
			
		|||
 | 
			
		||||
    load_GUI(root, config_dict)
 | 
			
		||||
 | 
			
		||||
    GUI_SIZE_WIDTH = 460
 | 
			
		||||
    GUI_SIZE_WIDTH = 500
 | 
			
		||||
    GUI_SIZE_HEIGHT = 594
 | 
			
		||||
 | 
			
		||||
    GUI_SIZE_MACOS = str(GUI_SIZE_WIDTH) + 'x' + str(GUI_SIZE_HEIGHT)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue