2015-12-17 19 views
-5

我試圖使用for循環從csv文件讀取數據。輸入數據後,我在循環內部使用了一個明確的等待,在輸入第一行數據後成功等待,執行正確的斷言並且結果正常;但是,此後不會發生等待,但數據會被填充,並且每個行都會單擊保存按鈕。爲什麼不是等待發生?Selenium-Python在每次不執行的循環內顯式等待

def test012_Check(self): 
     driver = self.driver 
     driver.get(test_url) 

     with open('Reg.csv','rb') as RegFile: 
      reader=csv.reader(RegFile) 
      next(reader, None) # skip the headers 
      for row in reader: 
       Fname=''.join(row[0]) 
       Lname=''.join(row[1]) 
       Assert=''.join(row[2]) 
       driver.find_element_by_id("namefirst").send_keys(Fname) 
       driver.find_element_by_id("namelast").send_keys(Lname) 
       driver.find_element_by_id("save-word").click() 

       try: 
        Mesg1 = WebDriverWait(driver, 5).until(
        EC.visibility_of_element_located((By.ID, "notif-wrapper-legacy")) 
        ) 
        Mesg1=driver.find_element_by_id("notif-wrapper-legacy").text 
        self.assertEqual(Mesg1, 'Success: Details saved!') 

       except NoSuchElementException: 
        print 'Account not setup' 

     self.logout() 

回答

0

看看這裏的documentations

WebDriverWait如果元素可見,則不會等待。如果你想不惜一切代價等待,在Java中,我將使用Thread.sleep(3000),嘗試Python中的等價物。