2016-03-02 59 views
0

我有一個表格,其中包含有關作業的詳細信息。Selenium Webdriver:如何確認頁面上不再顯示的元素

目前我可以使用下面的代碼找到指定的作業並選擇刪除。

[TestMethod] 
    public void DeleteJob() 
    { 
     JobsPage.GoTo();   
     JobsPage.Delete("TestJobTitle"); 
     Assert.IsTrue(DeleteJobPage.IsAt, "Delete job page not displayed");    
    } 

下面的方法找到指定的作業,然後單擊刪除

public static void Delete(string delete) 
     { 
      var test = Driver.Instance.FindElement((By.XPath("//table/tbody/tr[td[2] = '" + delete + "']/td[9]/a[3]"))); 
      test.Click(); 
     } 

我現在試圖找到一種方法來確認工作的JobsPage不再顯示。

Assert.IsTrue(JobsPage._View("TestJobTitle"), "Job is still present"); 

上述斷言在TestMethod的工作不

我嘗試下面的方法,但需要幫助才能工作。

public static bool _View(string view) 
     { 
      IList<IWebElement> messages = Driver.Instance.FindElements(By.XPath("//table/tbody/tr[td[2] = '" + view + "']")).ToList(); 
      foreach (IWebElement message in messages) 
      { 
       if (message.Text == view) 
       { 
        return true; // Job is still present 
       } 
      } 

      return false; // Job is not present 

     } 
+0

查看==查看???你想要做什麼? –

+0

問題是什麼?你有調試檢查每個'message.Text'呢? – Buaban

+0

是的,我檢查了每個message.Text,但它抓住整個tr作爲單行文本。我嘗試使用Driver.Instance.FindElements(By.XPath(「// table/tbody/tr [td [2]」)))來獲取第二個td元素。希望循環其文本屬性,並將其與我在上面的方法中作爲參數輸入的字符串進行比較,但由於它無法在其中找到任何webelements而失敗。 – Dulku

回答

0

不知道這是否有幫助。我有相同的場景,我在表中搜索用戶仍然存在與否。

public static bool ValidateSearchResult(string s) 
    { 
     bool val = false; 
     try 
     { 
      new WebDriverWait(Drivers._driverInstance, new TimeSpan(0, 0, 10)).Until(ExpectedConditions.ElementExists(By.TagName("tbody"))); 
      IList<IWebElement> StatusColumnData = Drivers._driverInstance.FindElements(By.XPath("//table/tbody/tr/td[2]")); 

      foreach (IWebElement element in StatusColumnData) 
      { 

       if (element.Text.Contains(s)) 
       { 
        val = true; 
        break; 
       } 
       else 
        val = false; 
       return val; 
      } 
     } 
     catch(Exception e) 
     { 
      throw (e); 
     } 
    } 
相關問題