Как использовать ext-gen ID, сгенерированный EXTJS в Selenium? - PullRequest
4 голосов
/ 16 мая 2011

Во время тестирования автоматизации веб-приложения я получаю динамически сгенерированные идентификаторы сторонних разработчиков.Я пытался использовать xpath, но контрольные примеры не пройдены.Я ходил по разным сайтам, но не нашел удачи.Кто-нибудь может мне помочь?

Спасибо, Шринивас Марти

Ответы [ 3 ]

1 голос
/ 02 сентября 2011

Для автоматического тестирования лучше всего избегать автоматически генерируемых идентификаторов ExtJS. Вы можете назначить свои собственные статические идентификаторы для компонентов, но теперь вы в основном засоряете свой код глобальными переменными, что тоже не хорошо. Использование некоторых идентификаторов может быть полезным компромиссом, но вы не хотите назначать идентификатор каждой маленькой кнопке.

Для ExtJS 4 я предлагаю использовать ComponentQuery :

Ext.ComponentQuery.query("panel[title='Orders'] button[text='Save']")
0 голосов
/ 01 сентября 2011

Лучше всего использовать Selenium для установки уникальных идентификаторов в коде.

Поскольку кнопка конфигурации отсутствует, необходимо добавить идентификатор для кнопок после создания кнопки.В ExtJS 3 мы использовали для установки идентификатора для кнопок:

dlg.getDialog().getEl().select('button').each(function(el) {
    el.dom.id = 'confirm-' + el.dom.innerHTML;
});

К сожалению, это больше не работает в ExtJS 4, поэтому я также ищу новое решение.; -)

0 голосов
/ 17 июня 2011

Я успешно автоматизировал сайты EXTJS и автоматически генерируемые идентификаторы, хотя я не рекомендую это делать. (поскольку идентификаторы генерируются автоматически, если на страницу добавляются новые элементы, все ваши локаторы потенциально недействительны.)

Я бы рекомендовал указывать точный объект вместо полного пути

//*[@id="ext-js123"]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...