Я создаю несколько тестов с Selenium для проекта, для которого я работаю.По какой-то причине я не могу найти элемент с его идентификатором, классом, xpath и т. Д. Возможно, я делаю что-то не так.После того как я войду в приложение, страница будет выглядеть следующим образом:
После того, как я войду в систему
Если вы увидите 3 вкладки: Избранное, Мой проект, Все проекты, которые у них естьИдентификаторы 12, 13, 14 соответственно.Когда я нажимаю кнопку «Добавить проект» и нажимаю «Создать», добавляется новый проект и этот проект в разделе «Мои проекты».Поэтому после создания этого проекта я хочу нажать на кнопку «Мои проекты», а затем нажать на название нового проекта и отредактировать его, чтобы я мог внести некоторые изменения и продолжить свой тест.Проблема в том, что, когда я пытаюсь нажать на кнопку «Мои проекты», я не могу, и он говорит, что это свойство нельзя щелкнуть.После добавления нового проекта идентификаторы трех вышеупомянутых кнопок также меняются.Таким образом, «Избранное» теперь имеет Id = 15, «Мои проекты» - Id = 16, а «Все проекты» - Id = 17.Может кто-нибудь помочь и дать мне знать, как правильно найти такой элемент?Я пробовал разные вещи, но пока ничего не работает.Ниже приведен код в моем тесте и скриншот с проверкой элемента.Заранее спасибо, любая помощь будет высоко ценится.
driver.FindElement(By.Id("UserName")).Click();
driver.FindElement(By.Id("UserName")).Clear();
driver.FindElement(By.Id("UserName")).SendKeys("admin");
driver.FindElement(By.XPath("(.//*[normalize-space(text()) and normalize-space(.)='Login'])[3]/following::table[1]")).Click();
driver.FindElement(By.Id("Password")).Click();
driver.FindElement(By.Id("Password")).Clear();
driver.FindElement(By.Id("Password")).SendKeys("admin");
driver.FindElement(By.XPath("(.//*[normalize-space(text()) and normalize-space(.)='Password'])[1]/following::input[2]")).Click();
driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(30);
driver.FindElement(By.Id("addproject-button")).Click();
driver.FindElement(By.Id("Name")).Click();
driver.FindElement(By.Id("Name")).Clear();
driver.FindElement(By.Id("Name")).SendKeys("ProjectX");
driver.FindElement(By.Id("Comments")).Click();
driver.FindElement(By.Id("Comments")).Clear();
driver.FindElement(By.Id("Comments")).SendKeys("the project");
driver.FindElement(By.Id("addproject")).Click();
driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(30);
//****************** THIS IS WHERE MY TEST FAILS-IT CAN'T LOCATE THE ELEMENT BY.ID*****************
driver.FindElement(By.XPath("//li[@class='ui-state-default ui-corner-top']/a[contains(.,'My projects')]")).Click();
//driver.FindElement(By.Id("ui-id-16")).Click();
//driver.FindElement(By.CssSelector("a.ui-tabs-anchor[id='ui-id-16']")).Click();
//driver.FindElement(By.Id("ProjectListTable")).FindElement(By.Id("project-list-tabs-content")).Click();//FindElement(By.ClassName("ui-state-default.ui-corner-top.ui-tabs-active.ui-state-active")).Click();
//driver.FindElement(By.ClassName("ui-tabs-anchor")).Click();
Кнопка моего проекта после создания проекта