Я запускаю случай в Selenium, в котором я хочу убедиться, что все элементы отображаются на веб-странице, но я хочу, чтобы пользовательские утверждения отображались в конце теста, если один или несколько не могут быть найдены.В настоящее время, используя driver.FindElement, я не могу обойти исключения ElementNotFound при назначении элементов переменным, если их нет во время идентификации.Есть ли способ обойти это?Вот мой текущий код
IWebElement userIcon = driver.FindElement(By.CssSelector("li.dropdown:nth-child(3) > a:nth-child(1)"));
userIcon.Click();
IWebElement profileIcon = driver.FindElement(By.CssSelector("li.dropdown:nth-child(3) > ul:nth-child(2) > li:nth-child(1)"));
profileIcon.Click();
IWebElement headerLogo = driver.FindElement(By.CssSelector(".company-logo"));
IWebElement headerMsgDrop = driver.FindElement(By.CssSelector(".fa-envelope-o"));
headerMsgDrop.Click();
IWebElement headerMsgDropSubGeneral = driver.FindElement(By.CssSelector("li.dropdown:nth-child(2) > ul:nth-child(2)"));
Assert.Multiple(() =>
{
Assert.IsTrue(headerLogo.Displayed, "Header Logo NOT Present");
Assert.IsTrue(headerMsgDrop.Displayed, "Header Main Message Drop NOT Present");
Assert.IsTrue(headerMsgDropSubGeneral.Displayed, "Header - Message - General Option NOT Present");
});
IWebElement headerUserDrop = driver.FindElement(By.CssSelector("li.dropdown:nth-child(3) > a:nth-child(1)"));
headerUserDrop.Click();
IWebElement headerUserDropSubProfile = driver.FindElement(By.CssSelector(".user-name"));
IWebElement headerUserDropSubCredentials = driver.FindElement(By.CssSelector("li.dropdown:nth-child(3) > ul:nth-child(2) > li:nth-child(2) > a:nth-child(1)"));
IWebElement headerUserDropSubSettings = driver.FindElement(By.CssSelector("li.dropdown:nth-child(3) > ul:nth-child(2) > li:nth-child(3) > a:nth-child(1)"));
IWebElement headerUserDropSubChgPass = driver.FindElement(By.CssSelector("li.dropdown:nth-child(3) > ul:nth-child(2) > li:nth-child(4) > a:nth-child(1)"));
IWebElement headerUserDropSubRstGrid = driver.FindElement(By.CssSelector("#clearLocalStorage"));
IWebElement headerUserDropSubLogOff = driver.FindElement(By.CssSelector("li.dropdown:nth-child(3) > ul:nth-child(2) > li:nth-child(6) > a:nth-child(1)"));
Assert.Multiple(() =>
{
Assert.IsTrue(headerUserDrop.Displayed, "Header Main User Drop NOT Present");
Assert.IsTrue(headerUserDropSubProfile.Displayed, "Header - User - Profile Option NOT Present");
Assert.IsTrue(headerUserDropSubCredentials.Displayed, "Header - User - Credentials Option NOT Present");
Assert.IsTrue(headerUserDropSubSettings.Displayed, "Header - User - Settings Option NOT Present");
Assert.IsTrue(headerUserDropSubChgPass.Displayed, "Header - User - Change Password Option NOT Present");
Assert.IsTrue(headerUserDropSubRstGrid.Displayed, "Header - User - Reset Grid Option NOT Present");
Assert.IsTrue(headerUserDropSubLogOff.Displayed, "Header - User - Log off Option NOT Present");
});
IWebElement headerSupportDrop = driver.FindElement(By.CssSelector("li.dropdown:nth-child(4) > a:nth-child(1)"));
headerSupportDrop.Click();
IWebElement headerSupportDropSubBase = driver.FindElement(By.CssSelector("li.dropdown:nth-child(4) > ul:nth-child(2) > li:nth-child(1) > a:nth-child(1)"));
IWebElement headerSupportDropSubFaq = driver.FindElement(By.CssSelector("li.dropdown:nth-child(4) > ul:nth-child(2) > li:nth-child(2) > a:nth-child(1)"));
IWebElement headerSupportDropSubTicket = driver.FindElement(By.CssSelector("li.dropdown:nth-child(4) > ul:nth-child(2) > li:nth-child(3) > a:nth-child(1)"));
Assert.Multiple(() =>
{
Assert.IsTrue(headerSupportDrop.Displayed, "Header Main Support Drop NOT Present");
Assert.IsTrue(headerSupportDropSubBase.Displayed, "Header - Support - Knowledge Base Option NOT Present");
Assert.IsTrue(headerSupportDropSubFaq.Displayed, "Header - Support - FAQ Option NOT Present");
Assert.IsTrue(headerSupportDropSubTicket.Displayed, "Header - Support - Submit Request Option NOT Present");
});
IWebElement emailTextInputField = driver.FindElement(By.CssSelector("div.col-md-10:nth-child(2)"));
IWebElement saveBut = driver.FindElement(By.CssSelector(".btn"));
IWebElement body = driver.FindElement(By.TagName("body"));
Assert.Multiple(() =>
{
Assert.IsTrue(body.Text.Contains("Profile"),"Profile Text NOT Present");
Assert.IsTrue(body.Text.Contains("Email"),"Email Text NOT Present");
Assert.IsTrue(body.Text.Contains("© 2018 - Stage Front Tickets"),"Copyright Text NOT Present");
Assert.IsTrue(emailTextInputField.Displayed, "Email Text Input Field NOT Present");
Assert.IsTrue(saveBut.Displayed, "Save Button NOT Present");
});
driver.Close();
}