def do_recording(file_name, url, overwrite_enabled, use_chrome, window): poll = None if sb_config.rec_subprocess_used: poll = sb_config.rec_subprocess_p.poll() if not sb_config.rec_subprocess_used or poll is not None: pass else: show_already_recording_warning() send_window_to_front(window) poll = sb_config.rec_subprocess_p.poll() if poll is None: return file_name = file_name.strip() error_msg = file_name_error(file_name) if error_msg: messagebox.showwarning("Invalid filename", "Invalid filename: %s" % error_msg) return url = url.strip() if not page_utils.is_valid_url(url): if page_utils.is_valid_url("https://" + url): url = "https://" + url if not page_utils.is_valid_url(url): messagebox.showwarning("Invalid URL", "Enter a valid URL! (Eg. seleniumbase.io)") else: if os.path.exists(os.getcwd() + "/" + file_name): if not overwrite_enabled: msgbox = tk.messagebox.askquestion( "Overwrite?", 'Are you sure you want to overwrite "%s"?' % file_name, icon="warning", ) if msgbox == "yes": os.remove(file_name) else: tk.messagebox.showinfo("Cancelled", "Recording Cancelled!") return else: os.remove(file_name) add_on = "" command_args = sys.argv[2:] if ("--rec-behave" in command_args or "--behave" in command_args or "--gherkin" in command_args): add_on = " --rec-behave" command = "sbase mkrec %s --url=%s --gui" % (file_name, url) if not use_chrome: command += " --edge" command += add_on poll = None if sb_config.rec_subprocess_used: poll = sb_config.rec_subprocess_p.poll() if not sb_config.rec_subprocess_used or poll is not None: sb_config.rec_subprocess_p = subprocess.Popen(command, shell=True) sb_config.rec_subprocess_used = True else: show_already_recording_warning() send_window_to_front(window)
def validate_proxy_string(proxy_string): if proxy_string in proxy_list.PROXY_LIST.keys(): proxy_string = proxy_list.PROXY_LIST[proxy_string] if not proxy_string: return None valid = False val_ip = re.match('^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}:\d+$', proxy_string) if not val_ip: if proxy_string.startswith('http://'): proxy_string = proxy_string.split('http://')[1] elif proxy_string.startswith('https://'): proxy_string = proxy_string.split('https://')[1] elif '://' in proxy_string: proxy_string = proxy_string.split('://')[1] chunks = proxy_string.split(':') if len(chunks) == 2: if re.match('^\d+$', chunks[1]): if page_utils.is_valid_url('http://' + proxy_string): valid = True else: proxy_string = val_ip.group() valid = True if not valid: display_proxy_warning(proxy_string) proxy_string = None return proxy_string
def validate_proxy_string(proxy_string): if proxy_string in proxy_list.PROXY_LIST.keys(): proxy_string = proxy_list.PROXY_LIST[proxy_string] if not proxy_string: return None valid = False val_ip = re.match( r'^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}:\d+$', proxy_string) if not val_ip: if proxy_string.startswith('http://'): proxy_string = proxy_string.split('http://')[1] elif proxy_string.startswith('https://'): proxy_string = proxy_string.split('https://')[1] elif '://' in proxy_string: proxy_string = proxy_string.split('://')[1] chunks = proxy_string.split(':') if len(chunks) == 2: if re.match(r'^\d+$', chunks[1]): if page_utils.is_valid_url('http://' + proxy_string): valid = True else: proxy_string = val_ip.group() valid = True if not valid: display_proxy_warning(proxy_string) proxy_string = None return proxy_string
def validate_proxy_string(proxy_string): from seleniumbase.fixtures import page_utils if proxy_string in proxy_list.PROXY_LIST.keys(): proxy_string = proxy_list.PROXY_LIST[proxy_string] if not proxy_string: return None valid = False val_ip = re.match(r'^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}:\d+$', proxy_string) if not val_ip: if proxy_string.startswith('http://'): proxy_string = proxy_string.split('http://')[1] elif proxy_string.startswith('https://'): proxy_string = proxy_string.split('https://')[1] elif '://' in proxy_string: if not proxy_string.startswith('socks4://') and not ( proxy_string.startswith('socks5://')): proxy_string = proxy_string.split('://')[1] chunks = proxy_string.split(':') if len(chunks) == 2: if re.match(r'^\d+$', chunks[1]): if page_utils.is_valid_url('http://' + proxy_string): valid = True elif len(chunks) == 3: if re.match(r'^\d+$', chunks[2]): if page_utils.is_valid_url('http:' + ':'.join(chunks[1:])): if chunks[0] == "http": valid = True elif chunks[0] == "https": valid = True elif chunks[0] == "socks4": valid = True elif chunks[0] == "socks5": valid = True else: proxy_string = val_ip.group() valid = True if not valid: display_proxy_warning(proxy_string) proxy_string = None return proxy_string