Различные сообщения об ошибках

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

Повторяя мой тест несколько раз без каких-либо изменений в любом из элементов, я получаю различные сообщения об ошибках при сбое, из-за которых неясно, как решить эту проблему. Я запускаю свои тесты, используя Robot Framework 2.8.7, используя Selenium2. Тест также был успешно пройден, а также на нескольких учетных записях, что делает странным то, почему он терпит крах по разным причинам, по сравнению с тем же кодом.

Все ошибки вызваны одной строкой кода, которая выглядит следующим образом:

select from list | name=lstServiceUser | 789456

И вот пример сообщений об ошибках, которые часто появляются.

KEYWORD: Selenium2Library.Select From List name=lstServiceUser, 789456
Documentation:  
16:15:03.402    INFO    Selecting option(s) '789456' from list 'name=lstServiceUser'.   
16:15:04.338    FAIL    AttributeError: 'NoneType' object has no attribute 'tag_name'


KEYWORD: Selenium2Library.Select From List name=lstServiceUser, 789456
Documentation:  
16:24:51.060    INFO    Selecting option(s) '789456' from list 'name=lstServiceUser'.   
16:24:53.391    FAIL    NoSuchElementException: Message: Finding elements with name == lstServiceUserreturned an unexpected error


KEYWORD: Selenium2Library.Select From List name=lstServiceUser, 789456
Documentation:  
16:27:08.545    INFO    Selecting option(s) '789456' from list 'name=lstServiceUser'.   
16:27:09.742    FAIL    ValueError: Element locator 'name=lstServiceUser' did not match any elements.

И, как я уже сказал, иногда тест даже проходит!

Если у кого-то есть какие-либо предложения о том, как преодолеть эту проблему или исправить ее, это будет высоко оценено. Заранее спасибо.

1 ответ

Решение

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

НАПРИМЕР

Wait Until Keyword Succeeds    10    2    select from list  name=lstServiceUser  789456

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

http://robotframework.org/robotframework/latest/libraries/BuiltIn.html

Существует множество других вариантов ожидания, из которых может подойти ваш вариант использования. Selenium2Library, в частности, имеет много. У меня недавно была похожая проблема, вызванная моей версией Chrome, она прошла несколько тестов, но, используя описанные выше методы, мы смогли довольно быстро ее обойти. Дополнительная информация по этому вопросу здесь:

https://code.google.com/p/chromedriver/issues/detail?id=1158

Другие вопросы по тегам