Selenium Webdriver:如何确认元素不再显示在页面上

时间:2016-03-02 09:48:33

标签: c# selenium selenium-webdriver

我有一张表格,其中包含有关工作的详细信息。

目前我可以使用以下代码查找指定的作业并选择删除。

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

在Method下找到指定的作业,然后单击delete

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();
        }

我现在正试图找到一种方法来确认作业不再显示在作业页面上。

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

TestMethod中的上述Assert无法正常工作

我尝试了以下方法,但需要帮助才能开始工作。

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

        }

1 个答案:

答案 0 :(得分: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);
        }
    }