Добавили функцию try и catch в метод и получили исключение для [DataRow] или [DynamicData]? - PullRequest
0 голосов
/ 04 ноября 2019

Хорошо, у меня есть метод входа на сайт с использованием selenium и c #, называемый LoginAndSelectAutomationFleet, но когда я его запускаю, я получаю исключение:

Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.TestFailedException: Only data driven test methods can have parameters. Did you intend to use [DataRow] or [DynamicData]?

Все, что я сделал, это преобразовал метод в тестовый методс попыткой поймать. Вот код:

[TestMethod]
 public void LoginAndSelectAutomationFleet(IWebDriver driver)
        {
            // login the user
            _userSetRepo = new UserSetttingsRep(driver);
            _regRep = new UserRegRep(driver);
            objCommon = new clsCommon(driver);
            objCommon.loginVT(driver);
            string getTitle = driver.Title;
            try
            {
                Assert.IsTrue(getTitle == "Amazing Power");
                Console.WriteLine("The application " + getTitle + " has logged in successfully!");


            }
            catch(Exception ex)
            {
                Assert.Fail(ex.Message);
                Console.WriteLine("The user failed to log in successfully!");
            }
            System.Threading.Thread.Sleep(3000);
            WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(60));
            wait.Until(SeleniumExtras.WaitHelpers.ExpectedConditions.ElementToBeClickable(By.XPath("//span[text()='User']"))).Click(); 


            WebDriverWait wait1 = new WebDriverWait(driver, TimeSpan.FromSeconds(60));
            wait1.Until(SeleniumExtras.WaitHelpers.ExpectedConditions.ElementIsVisible(By.XPath("//a[@class='vt-navbar__child-menu-link']//input")));

            objCommon.SendKeysAndClickTab(_userSetRepo.inputOrgansiation, "Companyxyz", driver);
}

Как разрешить?

1 Ответ

0 голосов
/ 04 ноября 2019

Метод испытания должен отвечать следующим требованиям:

  • Он украшен атрибутом [TestMethod].

  • Возвращает void.

  • У него не может быть параметров.

Согласно документации.

Лучшим решением было бы получить IWebDriver driver из метода, вызываемого в [TestMethod], или иметь IWebDriver driver в качестве глобальной переменной. Например:

[TestMethod]
 public void LoginAndSelectAutomationFleet()
 {
     IWebDriver driver = someMethod() //Returns an IWebDriver that you need.
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...