2013-07-18 3 views
1

Я пытаюсь запустить тест, записанный с использованием Selenium IDE. Следующий HTML генерируется IDESelenium IDE не обнаруживает идентификатор

<tr> 
    <td>clickAndWait</td> 
    <td>css=span.blt-txt</td> 
    <td></td> 
</tr> 
<tr> 
    <td>click</td> 
    <td>id=pt1:svMenu:np1:6:cni1::disclosureAnchor</td> 
    <td></td> 
</tr> 
<tr> 
    <td>click</td> 
    <td>id=pt1:r5:0:mr1:gts1:gts_pc1:itFilterFieldValue::content</td> 
<td></td> 
</tr> 
<tr> 
    <td>click</td> 
    <td>id=pt1:r5:0:mr1:gts1:gts_pc1:cil1::icon</td> 
    <td></td> 
</tr> 
<tr> 
    <td>click</td> 
    <td>id=pt1:r5:0:mr1:gts1:gts_pc1:tt1:0::di</td> 
    <td></td> 
</tr> 
<tr> 
    <td>click</td> 
    <td>id=pt1:r5:0:mr1:gts1:gts_pc1:tt1:1:astTreeSNo</td> 
    <td></td> 
</tr> 
<tr> 
    <td>click</td> 
    <td>id=pt1:r1:0:rAstDtl:0:cb4</td> 
    <td></td> 
</tr> 
<tr> 
    <td>click</td> 
    <td>id('pt1:ptGeneric:ot1::_afrTtxt')/x:div/x:h1</td> 
    <td></td> 
</tr> 

Когда я запускаю тест/выполнения команды я получаю сообщение об ошибке говорящее [error] Element id=pt1:r5:0:mr1:gts1:gts_pc1:tt1:0::di not found

Любые идеи, как я могу это исправить?

+0

и является ли этот идентификатор фактически на странице при запуске теста? Эти ID дают мне подсказку, что новый выпуск может сломать некоторый ID ... –

+0

Привет, Павел, да, идентификатор очень много на странице, где проходит тест, это первый раз, когда я написал этот тест. Путь пожара показывает следующий xpath .//*[@id='pt1:r1:0:rAstTbl:0:mr1:gts1:gts_pc1:tt1:0::di '] – user2594834

ответ

0
  1. идентификатор, кажется генерироваться старается не использовать этот идентификатор или использование содержит (попробуйте использовать другой XPath)
  2. я хотел бы использовать только последнее слово из идентификатора (вы должны проверить его) 3.you можно выделить, чтобы увидеть, где вы

пример содержит ./li[contains(.,'Model ')]]

0

Используя сгенерированный идентификатор в TestCase, как правило, плохая идея. Когда перезагрузка сервера/изменение данных, эти идентификаторы также имеют тенденцию к изменению.

В любом случае, ваша проблема, похоже, является классической проблемой с синхронизацией. Являются ли ваши элементы AJAX загруженными, когда что-то щелкнуло/после изменения страницы? Если да, Selenium пытается щелкнуть их, прежде чем они полностью загрузятся. Вы должны использовать waitForElementPresent, прежде чем нажимать на элемент, который вызывает проблемы.

Как правило, использование Selenium IDE для тяжелых страниц AJAX очень легко усложняется. Подумайте о переключении на ручную запись Selenium RC или, что еще лучше, на Selenium WebDriver. Вы можете получить лучшее из обоих миров - сначала нажмите тест в среде IDE, затем экспортируйте свой код в WebDriver на любом языке, внесите необходимые изменения, добавьте ожидания (неявные достаточно часто), все готово.