Не удалось найти текстовое поле с типом электронной почты с двумя атрибутами в драгоценном объекте страницы

Я новичок в page-object. Я попытался найти «текстовое поле», используя два атрибута, подобных этому text_field («user_name», {: class => 'title', : name => 'spree_user [email]'})

и html текстового поля

Но получаю ошибку: невозможно найти элемент: {"method":"xpath","selector":".//input[@class='title' и @name='spree_user[email]' и @type='text ']"}

но элемент существует на странице. Проблема в том, что по умолчанию он принимает type='text', как видно из сообщения об ошибке. Но в соответствии с html элемента type='email'. Но когда я нахожу этот элемент с помощью одного атрибута, он отлично работает.

Любое предложение будет полезно..


person PRAVEEN SHARMA    schedule 30.10.2014    source источник
comment
Можете ли вы поделиться HTML текстового поля? Кроме того, вы используете Selenium-WebDriver или Watir-WebDriver?   -  person Justin Ko    schedule 30.10.2014
comment
Я не знаю, какая разница, но что, если вы укажете идентификаторы без блока? 'text_field(:user_name, :class =› 'title, :name =›'spree_user[email]')' Попробуйте и ответьте здесь, затем мы поработаем над размещением и фактическим ответом.   -  person Jared Darling    schedule 31.10.2014
comment
@Justin KO: html текстового поля‹input class=title id=spree_user_email name=spree_user[email] placeholder=Email tabindex=1 type=email›   -  person PRAVEEN SHARMA    schedule 01.11.2014
comment
@Justin KO: Использование Selenium-WebDriver и html текстового поля: ‹input class=title id=spree_user_email name=spree_user[email] placeholder=Email tabindex=1 type=email›, но, глядя на сообщение об ошибке, кажется, что это принимая type='text' по умолчанию. Вот почему не удается найти элемент. Однако, когда я нахожу это текстовое поле с одним атрибутом, оно работает нормально.   -  person PRAVEEN SHARMA    schedule 01.11.2014
comment
@Jared_Casey: Хотя разницы быть не должно, я все же пробовал оба способа..   -  person PRAVEEN SHARMA    schedule 01.11.2014
comment
На странице Github Page Object Gem есть проблема, связанная с тем, что text_field находят только элементы с текстовым типом — Выпуск 214.   -  person Justin Ko    schedule 03.11.2014


Ответы (1)


Итак, простой ответ — использовать id:

text_field("user_name", id: "spree_user_email")

Но эти два тоже должны работать, если по какой-то причине вы не хотите использовать id:

text_field("user_name", class: "title", type: "email")

element("user_name", :input, class: "title", name: "spree_user[email]")

Первый определяет атрибут типа, поэтому он не перезаписывается действием объекта страницы по умолчанию. Второй — это обходной способ определения элемента, и он не добавляет к селектору атрибут типа.

person Johnson    schedule 02.11.2014