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 шт):

Автор решения: razielsd

После подтверждения кук необходимо дождаться, когда уберется подложка, которая скрывает все элементы на странице, и только потом нажимать на кнопку логина. Selenium считает кнопка логина не видна из-за подложки, и не дает ее нажать.

т.е. флоу работы страницы такой:

  1. Подтверждение кук
  2. Убирается подложка
  3. Становятся доступны элементы страницы (кнопка логина в частности)

Ваш код отрабатывает очень быстро, и вы кликаете по логину, когда он скрыт еще. Для проверки перед кликом на Login, можно добавить sleep на несколько секунд, но в коде теста, лучше потом заменить его на ожидание убирания подложки

→ Ссылка