Я использую Selenium RC в Eclipse и JUnit, как я фиксирую динамический идентификатор, пожалуйста, ответьте мне в ближайшее время
Selenium RC (генерация динамического идентификатора)
Ответы (3)
Чтобы использовать работу с динамическими идентификаторами, вам нужно либо использовать селекторы CSS, либо XPath.
Для xpath у вас будет xpath=//input[@contains(@id,'partOfId')], чтобы найти ввод, где вы знаете часть идентификатора, или для css это будет css=input[id^='partOfId']
person
AutomatedTester
schedule
04.02.2010
Сделать их статическими не всегда возможно для конкретного проекта (используемого фреймворка).
Вы можете иметь дело с разработчиками, что они предоставляют правила для префиксов или постфиксов ID.
И затем проверьте соответственно с селекторами XPATH и regexp.
person
sergionni
schedule
04.02.2010
инфраструктура, которая не допускает статических (или предсказуемых) идентификаторов для значимых компонентов, должна быть немедленно удалена.
- person Bozho; 04.02.2010
по крайней мере, они могут попытаться сделать идентификаторы предсказуемыми
- person sergionni; 04.02.2010
Божо, не видел, ты сказал предсказуемо, так что согласен с тобой
- person sergionni; 04.02.2010
@Bozho - значит, вы предлагаете людям не использовать Dojo и ExtJS? Они создают динамические идентификаторы для компонентов, но их легко поймать и обработать.
- person AutomatedTester; 04.02.2010
они не позволяют вам назначать идентификаторы? JSF также генерирует идентификаторы, но дает вам возможность задать их самостоятельно.
- person Bozho; 04.02.2010
@Bozho - Когда вы работаете с чем-то, что генерирует много вещей до его рендеринга, вы не всегда знаете идентификатор, и, поскольку идентификаторы должны быть уникальными, вам нужно убедиться, что нет возможности перекрытия. Итак, если у вас есть 2 человека с именем Bohzo в списке на странице и для редактирования их аккаунтов вам нужен уникальный идентификатор. Не всегда выполнимо.
- person AutomatedTester; 04.02.2010
Я сказал статический или предсказуемый. Сложные компоненты (например, RichFaces) генерируют множество других элементов. Но их идентификаторы предсказуемы. Как
mycomponentid_header. Или, если внутри несколько элементов, они называются mycomplnentid:1:item, mycomponentid:2:item и так далее.
- person Bozho; 04.02.2010
Вместо этого вы можете использовать статическое имя. Или ваш собственный пользовательский локатор
person
Urszula Karzelek
schedule
10.02.2010