Различные сообщения об ошибках
Я продолжаю получать различные сообщения об ошибках, хотя я не делаю изменений ни в коде, ни в среде физического тестирования. Также выясняется, что окружающая среда, которую я тестирую, полностью такая же, только из-за внешнего вида, и я не вижу причин для ее изменения в любом случае.
Повторяя мой тест несколько раз без каких-либо изменений в любом из элементов, я получаю различные сообщения об ошибках при сбое, из-за которых неясно, как решить эту проблему. Я запускаю свои тесты, используя 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