Получение данных из таблицы после нажатия кнопки поиска - PullRequest
0 голосов
/ 11 июля 2020

Я тестирую функцию поиска на своем веб-сайте с помощью Selenium Webdriver. Я пытаюсь получить список таблицы после того, как нажал кнопку «Поиск», чтобы сравнить с вводом.

Например: в списке 10 автомобилей и 2 машины с именем Tesla. Если я введу Tesla, нажмите кнопку Search, и в новом списке будет только 2 автомобиля с именем Tesla. Мне нужно получить эти 2 имени для сравнения с вводом, но похоже, что мой код получает список, прежде чем я нажму кнопку «Поиск».

Ошибка: Assert.AreEqual не удалось. Ожидается: . Актуально: Exciter.

Кто-нибудь может мне с этим помочь? Большое спасибо

Вот мой код:

[TestMethod]
        [DataRow("Exciter")]
        public void Search_XE_with_Name(String Name)
    {

        Login();

        driver.Navigate().GoToUrl(homeURL + "/app/admin/xe-group11");
        driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(15);
        Thread.Sleep(8000);
        //Act

        driver.FindElement(By.Name("xE_NAME")).Clear();
        driver.FindElement(By.Name("xE_NAME")).SendKeys(Name);
        driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(7);

        IWebElement ele = driver.FindElement(By.XPath("/html/body/app-root/ng-component/div/div/div[2]/ng-component/div[3]/div/div/form/div/div[1]/div/div/div/span[3]/button"));
        IJavaScriptExecutor executor = (IJavaScriptExecutor)driver;
        executor.ExecuteScript("arguments[0].click();", ele);
        driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(10);


        TimeSpan ts = new TimeSpan(3000);
        WebDriverWait wait = new WebDriverWait(driver,ts);
        //IWebElement tableElement = driver.FindElement(By.XPath("/html/body/app-root/ng-component/div/div/div[2]/ng-component/div[2]/div/p-table/div/div/div/div[2]/table/tbody"));
        //IList<IWebElement> rows = tableElement.FindElements(By.TagName("tr"));
        //List<String> Name1 = new List<String>();

        IWebElement tableElement = driver.FindElement(By.XPath("/html/body/app-root/ng-component/div/div/div[2]/ng-component/div[3]/div/div/div/div/div/p-table/div/div/div/div[2]/table/tbody"));
        IList<IWebElement> rows = tableElement.FindElements(By.TagName("tr"));
        //IList<IWebElement> rowtd;
        var listName = new List<string>();

        foreach (IWebElement row in rows)
        {
            var secondColumn = tableElement.FindElements(By.TagName("td"))[2];
            listName.Add(secondColumn.Text);
        }

        foreach (String names in listName)
        {
            Assert.AreEqual(names, Name);
        }            

        driver.Close();
    }

Before Search После поиска

...