2015-03-30 2 views
0

У меня с трудом появляется. Я пытаюсь получить Огурец, чтобы найти этот идентификатор элементов на странице. Сначала, чтобы подтвердить, что он присутствует, во-вторых, нажмите на него.Огурец не находит идентификатор страницы - Ruby, Capybara, Selenium

<a id="ga_Vehicle alerts_Vehicle tax: Expired" href="/vehicles/fleetRecords?dol.expired=true&amp;filter=expired" class="alert-3-row" title="Vehicles with expired tax"></a>. 

Похоже, что идентификатор встроен в гиперссылку.

Когда я пытаюсь

Then /^I can verify that expired hyperlink is present within the alert$/ do 
find_by_id "a_Vehicle alerts_Vehicle tax: Expired" 
end 

Элемент не может быть найден.

Где я иду не так?

Приветствия

ответ

1

У вашего идентификатора не должно быть пробелов. Отсюда: http://www.w3.org/TR/REC-html40/types.html#h-6.2

ID и NAME лексемы должны начинаться с буквы ([A-Za-Z]) и может следовать любое количество букв, цифр ([0-9]), дефис (» - "), подчеркивания (" _ "), двоеточия (": ") и периоды (". ").

пространство не являются допустимыми символами в ID и тщательно запутать любой РОМ парсеров, JQuery, CSS, селен и т.д. Вы должны удалить пробела из вашего ID и заменить их с подчеркиванием, если вам действительно нужно, что много информации в вашем удостоверении личности. Если вы используете идентификатор для хранения метаданных об узле HTML, я бы посоветовал это сделать.

Как выглядит, возможно, после этого добавляются такие вещи, как a_Vehicle и warn_Vehicle как классы.

1

На основе вашего HTML-фрагмента, значение атрибута href является id="ga_Vehicle alerts_Vehicle tax: Expired". Ваш локатор немного отличается: "a_Vehicle alerts_Vehicle tax: Expired".

+0

Извинения, это была опечатка ... она должна читать «ga_Vehicle ....» – Tom