Пользовательский интерфейс каратэ - Найти элемент html через атрибут, где имя содержит специальные символы - PullRequest
1 голос
/ 13 апреля 2020

Я большой поклонник каратэ и изучаю пользовательский интерфейс каратэ от конца до конца тестирования, но остановился на одной простой вещи - поиске элемента по атрибуту, где элемент содержит специальные символы, как показано ниже

<input autocapitalize="none" autocomplete="on" autocorrect="off" name="session[username_or_email]" spellcheck="false" type="text" dir="auto" data-focusable="true" class="r-30o5oe r-1niwhzg r-17gur6a r-1yadl64 r-deolkf r-homxoj r-poiln3 r-7cikom r-1ny4l3l r-1inuy60 r-utggzx r-vmopo1 r-1w50u8q r-1lrr6ok r-1dz5y72 r-1ttztb7 r-13qz1uu" value="">

Это фрагмент html, взятый со страницы входа в Twitter. Чтобы получить этот элемент управления, я пробовал различные варианты из перечисленных ниже, но не смог найти элемент управления

Вариант 1

  Given driver 'https://twitter.com/login'
  And input('#session[username_or_email]',['aaaa@gmail.com',Key.ENTER], 100)
  And input('#session[password]',['asasas', Key.ENTER], 100)
  When submit().click("click('{span}Log in')")
  #* def elements = locateAll('{div}Click Me')
  Then locate('.css-901oao').exists

Вариант 2

  Given driver 'https://twitter.com/login'
  And input('input[name=session[username_or_email]]', 'aaaa@gmail.com')
  When submit().click("click('{span}Log in')")
  Then locate('.css-901oao').exists

Я выше пробовал варианты, я не смог найти кнопки ввода и диапазона. Любая помощь или указатель будут очень полезны.

1 Ответ

1 голос
/ 13 апреля 2020

Здесь вы go, обратите внимание, как вы можете использовать двойные кавычки при необходимости. Я также даю альтернативный подход, input[type=text] также сработало бы:

* input("input[name='session[username_or_email]']", 'hello')
* input('input[type=password]', 'world')
* click('div[role=button]')
...