t.me/atinfo_chat Telegram группа по автоматизации тестирования

как получить элемент, если в class несколько слов разделенные пробелом

Теги: #<Tag:0x00007f7485f364b0> #<Tag:0x00007f7485f363e8> #<Tag:0x00007f7485f36320> #<Tag:0x00007f7485f36258>

пишу автоматизированную отправку письма (мэйл.ру), там не могу достучатся до поля “кому”
вот скрин http://prnt.sc/ajbawo
где класс написано js-input compose__labels__input, что не позволяет в коде написать By.className
прошу подсказки

может попробовать вместо className использовать css? например, element(by.css(’[data-original-name=“To”]’)).sendKeys(‘test@test.com’);

2 Симпатий

По моему вот тут есть ответ:


А вот тут в одном из ответов пояснение что к чему и отчего:

1 Симпатия

А xpath’ом из серии //*[contains(@class,‘compose__labels__input’)] не получается?
(сразу оговорюсь, не знаю является ли этот класс так сказать, уникальным

1 Симпатия

не уникален, много совпадении

Попробуй так
//*[@id=‘compose__header__content’]/div[2]//input[2]

или

//*[@id=‘compose__header__content’]/div[2]//input[1]

1 Симпатия

Можете обратиться через xpath //div[contains(@class, ‘js-row-To’)]//textarea[contains(@class, ‘js-input’)]

1 Симпатия

css path
.js-input.compose__labels__input

или если все же хотите xpath
.//*[@class='b-compose']/descendant::textarea[2]

1 Симпатия

Есть же уникальный data-original-name, по нему можно найти

доброго времени суток. Предлагаю вам использовать для отправки писем mail ru API- http://api.mail.ru/docs/guides/oauth/sites/
Отправлять письма через вэб-драйвер как-то дико и велосипедно если честно, когда для этого у каждого почтового сервиса есть специальное API

это в целях обучиться вебДрайверу)))