Selenium не может найти нужную кнопку по правельному пути?
у меня есть код для нажатия на кнопку
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
...
IWebDriver driver = new ChromeDriver();
driver.Url = @"https://wax.atomichub.io/drops/52931";
driver.FindElement(By.XPath(@".//div[@class='text-left mt-4']/button[@class='btn btn-primary']")).Click();
System.Console.WriteLine("___");
foreach (var item in driver.FindElements(By.XPath(@".//button[@text='Login']")))
{
System.Console.WriteLine("|||" + item.GetAttribute("class"));
}
Я пробовал обращатся и по тексту и по класу и просто по кнопке ничего не находит
вот сайт -> https://wax.atomichub.io/drops/52931
Я смог нажать на кнопку с потверждением куки но дальше не могу найти кнопку для логина которая находиться внизу на карточке
(при входе сдесь будет написано логин) Почему я не могу найти эту кнопку?
Ответы (1 шт):
После подтверждения кук необходимо дождаться, когда уберется подложка, которая скрывает все элементы на странице, и только потом нажимать на кнопку логина. Selenium считает кнопка логина не видна из-за подложки, и не дает ее нажать.
т.е. флоу работы страницы такой:
- Подтверждение кук
- Убирается подложка
- Становятся доступны элементы страницы (кнопка логина в частности)
Ваш код отрабатывает очень быстро, и вы кликаете по логину, когда он скрыт еще. Для проверки перед кликом на Login, можно добавить sleep на несколько секунд, но в коде теста, лучше потом заменить его на ожидание убирания подложки
