2013-04-04 7 views
2

Я использую Selenium IDE 1.9.0 для записи теста. Пожалуйста, сообщите мне, что я не ошибся и как исправить проблему.Selenium IDE [error] Элемент id = cmp_admin не найден

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

Сценарий остановился на этой линии:

ClickAndWait id=cmp_admin 

первый раз, когда я играл в сценарий он работает без каких-либо ошибок. Запустить скрипт на после 8 часов, он предлагает мне следующее сообщение об ошибке:

[error] Element id=cmp_admin not found 

Я использовал функцию отладки, чтобы выяснить, что пошло не так. Вот отображаемые в панели отладки сообщения:

[debug] modifySeparateTestWindowToDetectPageLoads: already polling this window: selenium1365079281311 
[debug] getCurrentWindow newPageLoaded = false 
[error] Element id=cmp_admin not found 
[debug] commandError 
[debug] testComplete: failed=true 

Вот HTML код, сгенерированный Selenium IDE

<tr> 
    <td>open</td> 
    <td>/</td> 
    <td></td> 
</tr> 
<tr> 
    <td>click</td> 
    <td>id=nd_home</td> 
    <td></td> 
</tr> 
<tr> 
    <td>clickAndWait</td> 
    <td>id=cmp_admin</td> 
    <td></td> 
</tr> 
<tr> 
    <td>click</td> 
    <td>id=quicksearch_anchor</td> 
    <td></td> 
</tr> 
<tr> 
    <td>clickAndWait</td> 
    <td>css=img[alt=&quot;Member&quot;]</td> 
    <td></td> 
</tr> 
<tr> 
    <td>type</td> 
    <td>id=search_name</td> 
    <td>suzy</td> 
</tr> 
<tr> 
    <td>clickAndWait</td> 
    <td>link=Balagia, Suzy</td> 
    <td></td> 
</tr> 
</tbody></table> 
</body> 
</html> 

ответ

3

При нажатии на любую кнопку или ссылку после нажатия некоторое время берется для загрузки страницы, если страница не загружается полностью, то селен язь не найден ID или имя следующего элемента. Для решения такого типа использования используется Pause , waitfortext, clickandwait command

Я вношу некоторые изменения в код, пожалуйста, запустите и сообщите мне, что это работает для вас или нет.

<tr> 
    <td>open</td> 
    <td>/</td> 
    <td></td> 
</tr> 
<tr> 
    <td>click</td> 
    <td>id=nd_home</td> 
    <td></td> 
</tr> 
<tr> 
    <td>pause</td> 
    <td>1500</td> 
    <td></td> 
</tr> 
<tr> 
    <td>clickAndWait</td> 
    <td>id=cmp_admin</td> 
    <td></td> 
</tr> 
<tr> 
    <td>click</td> 
    <td>id=quicksearch_anchor</td> 
    <td></td> 
</tr> 
<tr> 
    <td>clickAndWait</td> 
    <td>css=img[alt=&quot;Member&quot;]</td> 
    <td></td> 
</tr> 
<tr> 
    <td>type</td> 
    <td>id=search_name</td> 
    <td>suzy</td> 
</tr> 
<tr> 
    <td>clickAndWait</td> 
    <td>link=Balagia, Suzy</td> 
    <td></td> 
</tr> 
</tbody></table> 
</body> 
</html> 
1

Это может быть несколько вещей. Во-первых, это элемент, который вы ищете (id = cmp_admin) на странице и по-прежнему называется cmp_admin? Из вашего кода, похоже, вам нужно щелкнуть по id = nd_home, а затем загружать страницы, содержащие cmp_admin. Если это так, скорее всего, страница не закончила загрузку, так что элемента еще нет. Попробуйте использовать команду waitfor между щелчком на nd_home следующим образом:

нажмите | id = nd_home |

waitForElementPresent | id = cmp_admin |

clickAndWait | id = cmp_admim |

Вы также можете попробовать паузу, ожидая пару секунд, но я нахожу команды waitfor менее хрупкими, особенно если у вас много запросов Ajax или элементов, которые нужно загрузить.

Klendathu

Смежные вопросы