Прерывистый элемент Selenium не найден, даже после наличия элемента отчетности - PullRequest
2 голосов
/ 26 мая 2011

У меня возникла проблема в Selenium, которая повторялась в моем тестовом наборе, который сообщает об элементах, отсутствующих после того, как они четко обнаружены, а Selenium даже сообщает, что они поступили через isElementPresent().

Например, язагрузите страницу с текстовым полем.После завершения selenium.waitForPageToLoad() селен периодически сообщал об отсутствии текстового поля.Чтобы выяснить, была ли это проблема синхронизации, я добавил Thread.sleep(5000) после загрузки страницы и для проверки наличия элемента:

logger.debug("Element present status: " + selenium.isElementPresent(elements.get("File Path Text Field")));

Странно то, что каждый раз, когда я запускаю скрипт,страница загружается без проблем.Во время 5-секундного сна я четко вижу текстовое поле.КАЖДЫЙ ВРЕМЯ приведенный выше оператор логгера сообщает «true» для присутствующего элемента.Самая следующая строка кода -

selenium.type("something");

, и это стрельба из крэпса независимо от того, сообщает он о наличии элемента или нет.Кто-нибудь еще сталкивался с подобными проблемами и знает, как их решить?

Спасибо заранее.

Ответы [ 2 ]

2 голосов
/ 27 мая 2011

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

  1. Измените isElementPresent на isVisible.Много раз я видел, что isElementPresent проходит там, где isVisible терпит неудачу.

  2. Если вы используете IDE для кодирования тестов, используйте точку останова перед командой selenium.type и выполните команду.Если селен может «ВСЕГДА» найти элемент во время выполнения этой точки останова, то будьте уверены, что у вас есть проблема синхронизации.

0 голосов
/ 27 мая 2011

Попробуйте selenium.type (elements.get ("Текстовое поле пути к файлу"), "что-то"); Так как метод selenium.type ожидает два параметра, а именно. локатор и значение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...