С помощью Selenide пытаюсь сделать дефолтную авторизацию (внести параметры в инпуты, нажать кнопку войти). Но ни при каких вариантах не удалось получить какой либо из элементов странички. Времени на ожидание полно, примерно ждет 1 минуту на появление элемента, iframe отсутствует. В чем может быть причина? Локаторы менял, ожидание ставил и на 300 секунд вовсе (даже не видит тег логотипа).
Ошибку-то какую получаете?
Была проблема, что после открытия окна браузера было два frame, что бы начать взаимодействовать с элементами в одним из них, приходилось делать switchTo().defaultContent(); и дальше к нужному frame.
Ожидание тут не причем.
Вместо локаторов используй XPath (xml путь). С помощью него можно нажать на что угодно.
Как это сделать:
- Переходишь в F12.
- Берешь стрелочку поиска элементов (она над HTML кодом вверху слева).
- Кликаешь по форме.
- В коде попадаешь прямиком на то место, где описан этот элемент.
- Например он расположен в /html/body/div/div/div/div/div/span - абсолютный путь в XPath либо //span либо //div[5]/span - относительный путь. РЕЗУЛЬТАТ №1 ПОЛУЧЕН.
- В html коде жми Ctrl + F и вставь в поисковую строку //div[5]/span
- Если результатов поиска 1 шт. - ты счастливчик. РЕЗУЛЬТАТ №2 ПОЛУЧЕН.
- Если больше - нет, и нужно будет кроме пути написать [contains @тег_элемента = значение элемента]. Ведь в span пусто место не бывает. РЕЗУЛЬТАТ №3 ПОЛУЧЕН.
- Если вообще отчаялся, то есть два способа. 1-й - кликни правой кнопкой мышки по коду и выбери Скопировать > XPath. Либо скачай selenium ide как плагин браузера и воспроизвели шаг, скопируй XPath оттуда.
- Осталось только findElement.By.xpath(‘div[5]’).click написать.
Покажите разметку, так понятнее будет.
@bereg2k , я тебе по ошибке Селениум код, а не Селенид показал, похоже не так преподнес мысль.
Смотри, у меня есть подозрения, что ты в Селекторах ищешь. А ты погугли как искать через XPath. Он как раз подходит для таких случаев, когда в упор элемент на странице не ловится.
Погугли XPath.