Добрый день.Столкнулся с проблемой подбора локатора для e-mail, а конкретней елементов типа “НАПИСАТЬ” и “ОТПРАВИТЬ”.
Почта-GMAIL
Локаторов типа ID,NAME-нет!Xpath и СSS-не работают!
НАПИСАТЬ
div class=“T-I J-J5-Ji T-I-KE L3” role=“button” tabindex=“0” gh=“cm” style=“user-select: none;”>НАПИСАТЬ</div
Вообще, можно попробовать зацепиться за другие элементы, которые идут выше по дереву, возможно там есть более вменяемые атрибуты.
Если не брать это во внимание, то можно привязаться к тексту:
Если не трудно, можете написать полную команду.
Например:find_element_by_link_text("//div[text()=‘Отправить’]")(так не работает).
Или попробовать зацепиться за другие элементы.Высылаю HTML
Написать
Вы сами придумали себе задачу - автоматизировать Gmail (что вообще очень сложно сделать зная структуру приложения), а теперь хотите чтобы за вас все локаторы написали готовые.
Если вы не работаете в Google - то возьмите для своих тестов сайт со структурой попроще, не мучайтесь.
К тому же это ошибка не из-за кривого локатора, локатор похоже правильный. Ошибка потому что невозможно кликнуть на невидимый элемент.
Там нет линка. Там div. Поэтому xpath нужен нормальный, как предложил @JustAlex1, например.
А вообще, зачем автоматизировать Гугл мейл через UI, когда у них есть прекрасный API? Не говря уже, что можно все сделать по обычному почтовому протоколу.
JustAlex1… ты просто красавец)))))Работает:scream:
find_element_by_xpath("//div[text()=‘Отправить’]")
СПАСИБО)))))
Подскажи ещё плиз, эта формула работает всегда //div[text()=‘Какой-то текст’]?
Может подскажешь, какой-то ресурс где всё это описано?
Ну и как в дополнение почему вы взяли для обучения не ту страницу:
На таких страницах (почтовый менеджер) полно теневых конструкций, когда вроде бы уникальный локатор должен находить 1 элемент, а их 2 или больше, один из них будет доступен для действий. Это сделано для того, чтобы переход между входящими и отправленными письмами осуществлялся на лету. Поэтому конструкцию xpath пути следует начинать от элемента, свойства которого точно указывает что это письмо находится в папке Входящие. Думаю, логика стала ясна. А также может быть не тривиальным переход между фреймами и возврат назад в поиске элемента. Натолкнетесь один раз и вообще руки опустятся
Найдите страничку попроще, присоединюсь к @xotabu4