Селеновый элемент не найден - PullRequest
3 голосов
/ 24 мая 2009

Я пишу тест Selenium на PHP, чтобы проверить производительность веб-приложения в Firefox. Я хочу использовать это как основу для сравнения различных улучшений производительности (обновление JQuery, PHP 5.3 и т. Д.). Веб-приложение очень интенсивно работает с AJAX, и до сих пор я столкнулся только с одной проблемой.

У меня есть вызов AJAX, который загружает контент в существующий div. Чтобы проверить, завершен ли вызов, я использую следующую строку кода:

$selenium->waitForCondition('$(\'div[id="divId"]\').height() > 100', $timeout);

Это работает, как я и ожидал, но когда я пытаюсь ввести любой ввод, загруженный в div, selenium выдает ошибку «Элемент input [@ id =« inputId »] not found».

Я проверил, что идентификатор для ввода правильный, и я пробовал с другими элементами ввода, которые загружены в div, и ни один из них не работает. Я также попытался добавить sleep (30), чтобы точно знать, что элементы находятся в DOM и на экране, но опять же это не имело никакого значения.

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

Спасибо, Джеймс Армес

1 Ответ

4 голосов
/ 24 мая 2009

Я бы посмотрел на несколько вещей:

  1. Убедитесь, что условие, которое вы проверяете, не соответствует действительности, прежде чем элементы будут загружены. Например, проверка height кажется подозрительной - не лучше ли проверить, есть ли в div какие-нибудь дети?

  2. В зависимости от того, как вы пишете селектор, Selenium может думать, что input[@id='inputId'] является фактическим идентификатором селектора (а не просто inputId). Убедитесь, что это не так. Попробуйте просто использовать inputId, что должно быть достаточно, поскольку это идентификатор.

  3. Селен может быть привередливым. Попробуйте разные браузеры, чтобы увидеть, если вы получите разные результаты. Если так, это может представлять область, которую Селен не покрывает хорошо. Хотя это, как правило, мало и далеко друг от друга, это возможно. Но нам нужно увидеть больше кода, прежде чем он будет уверен, что это так.

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