Selenium C# Элементы с одинаковыми классами
Я уже задавал сюда этот вопрос, но оказалось, что неправильно составил. Есть страница. Надо создать бота. Надо кликнуть на определенный элемент, однако у всех элементов одинаковые классы, названий нет. Есть href ссылка. Я по XPath пытался указать путь, но он не видит его. Делал перебор элементов, не нашел то, что его надо. Я новичок, недавно начал изучать Selenium.
Мои попытки: driver.FindElement(By.XPath("//a[@href=""]")).Click();
driver.FindElement(By.XPath("//*[@id="body-wrapper"]/div[4]/div/div[1]/div[1]/div/a")).Click();
Эти методы тоже пробовал:
driver.FindElement(By.PartialLinkText)
driver.FindElement(By.LinkText)
driver.FindElement(By.CssSelector)
driver.FindElement(By.ClassName)
driver.FindElement(By.TagName);
И еще много попыток, ничего не получилось. Пробую через браузер Chrome. Мой код:
IWebDriver driver = new OpenQA.Selenium.Chrome.ChromeDriver();
driver.Navigate().GoToUrl("");
driver.FindElement(By.XPath.Click();
Console.ReadKey();
driver.FindElement(By.XPath("//a[@href=\"/der\"]"));
Выдает во всех вариантах: 'no such element: Unable to locate element: {"method":"xpath","selector":"//a[@href=""]"}
Ответы (1 шт):
Я нашёл решение. Дело в iframe. Надо было найти строчку iframe в source страницы браузера, затем написать код Switch.To().Frame("сюда ид или название фрейма"). Оказывается это из-за фрейма код не может найти путь Xpath. Как я понял, frame не часть страницы, а какая-то служба и сначала надо получить доступ к нему, чтобы дальше все получалось.