def add_dataset_by_path(self,fileaddr,extension = ".csv",overwrite= False, change_name = False, new_name ="dataset.csv",wait_for_upload=True):
        if self.driver.name == 'phantomjs':
            raise "This feature is yet not available in headless mode. Sorry."
        extensions = ["",".csv",".nh.csv",".tsv",".nh.tsv",".txt",".svmlight",".arff",".zip",".RData"]
        assert extension in extensions

        fileaddr =os.path.abspath(fileaddr)
        self.report("adding dataset from",fileaddr)
        self.driver.get("https://studio.azureml.net/Home/")
        btn_new =_apply_until_passes(self.wait_load,self.driver.find_element_by_class_name,"fxs-drawertaskbar-newbutton-img")
        btn_new.click()
        dataset_tab = _apply_until_passes(self.wait_load,self.driver.find_element_by_css_selector,".Dataset > img:nth-child(1)")    
        dataset_tab.click()
        time.sleep(self.wait_short)
        fromloc_tab = self.driver.find_element_by_css_selector(".UploadDatasetMenuItem > img:nth-child(1)")    
        fromloc_tab.click()
        time.sleep(self.wait_short)
        file_inp = self.driver.find_element_by_css_selector("div.datalab-validation-wrapper:nth-child(2) > input:nth-child(3)")
        file_inp.send_keys(fileaddr)
        time.sleep(self.wait_short)
        
        name_inp = self.driver.find_element_by_css_selector("div.animation-wrapper:nth-child(2) > input:nth-child(2)")

        checkbox_overwrite = self.driver.find_element_by_css_selector(".deprecate-header > input:nth-child(1)")
        if checkbox_overwrite.is_selected(): #to unlock the input
            checkbox_overwrite.click()	

        if change_name:
            time.sleep(self.wait_short)
            name_inp.send_keys(Keys.CONTROL+'a'+Keys.NULL)            
            name_inp.send_keys(new_name)
        name = name_inp.get_attribute("value")
        
        if overwrite:
            checkbox_overwrite.click()
            switch_type =  self.driver.find_element_by_css_selector("div.datalab-validation-wrapper:nth-child(4) > select:nth-child(3)")
            select.Select(switch_type).select_by_index(extensions.index(extension))
            time.sleep(self.wait_short)

        tick_btn = self.driver.find_element_by_class_name("fx-dialog-ok")
        tick_btn.click()
        
        
        time.sleep(self.wait_short)
        failure = False
        try:
            failure = tick_btn.is_displayed()
        except:
            pass
        if failure:
            raise ValueError,"Couldnot create dataset. The cause must be that the name isn't unique or the parameters are invalid. Haven't you already uploaded it?"
                
        if wait_for_upload:
            self.report("waiting for file to upload")
            _apply_until_passes(self.wait_load,self.driver.find_element_by_css_selector,".fxs-progressbox-actionbutton > button:nth-child(1) > img:nth-child(1)")

        self.report(name,'dataset added')
 def sign_in(self,login,password,keep_signed = False):
     self.report("signing in...")
     self.driver.get("https://studio.azureml.net/")
     elem= _apply_until_passes(self.wait_load,self.driver.find_element_by_class_name,"signInLink")    
     elem.click()
     inp_login = _apply_until_passes(self.wait_load,self.driver.find_element_by_id,"i0116")    
     inp_login.send_keys(login)
     inp_password = self.driver.find_element_by_id("i0118")
     inp_password.send_keys(password)
     if keep_signed:
         inp_keep = self.driver.find_element_by_id("idLbl_PWD_KMSI_Cb")
         inp_keep.click()
     inp_login_btn = self.driver.find_element_by_id("idSIButton9")
     inp_login_btn.click()
     time.sleep(self.wait_short)
     self.report("signed in as",login)
 def create_new_experiment(self,experiment_name = None):
     self.report("creating new experiment")
     self.driver.get("https://studio.azureml.net/Home/")
     btn_new =_apply_until_passes(self.wait_load,self.driver.find_element_by_class_name,"fxs-drawertaskbar-newbutton-img")
     btn_new.click()
     
     btn_blanc = _apply_until_passes(self.wait_load, self.driver.find_element_by_css_selector,".blank-icon")
     btn_blanc.click()
     exp_name = self.driver.find_element_by_css_selector("#experiment-description")
     if experiment_name != None:
         time.sleep(self.wait_short)
         exp_name.send_keys(Keys.CONTROL+'a'+Keys.NULL)
         exp_name.send_keys(experiment_name)
     else:            
         experiment_name = exp_name.get_attribute("value")
     self.report("created experiment with name:",experiment_name)