Selenium не может найти компонент после обновления dom (reRender) - PullRequest
4 голосов
/ 21 декабря 2009

Я тестирую приложение richfaces с селеном. Работает нормально, если я не использую reRender. (для тех, кто не знаком с richfaces - после завершения ajax-запроса части DOM обновляются / исправляются / удаляются).

Таким образом, после reRender селена (по крайней мере, в среде IDE) не удается найти элементы, которые находились в области перерисовки. И FireBug, и WebDeveloper локализуют элементы, и в «представлении источника» эти элементы есть.

Итак, есть ли способ сказать селену, чтобы он обновлял свои "знания" DOM ​​с последними изменениями?

Firefox 3.5.6, последняя версия Selenium IDE.

Ответы [ 2 ]

2 голосов
/ 15 августа 2010

Я использую Fifefox 3.6.8, Selenium IDE 1.0.7 и RichFaces 3.3.1, работающие на Ubuntu Linux. У меня нет этой проблемы.

У меня есть простая форма, где выбор радиокнопки запускает рендеринг a: outputPanel. Изначально панель пуста. Если выбран правильный переключатель, условие визуализации будет выполнено, и панель будет перерисована с дочерними компонентами. Я могу установить waitForCondition для поиска идентификатора элемента, который будет отображаться как дочерний элемент панели, и я могу проверить дочерние элементы после их появления. Selenium IDE правильно определяет эти дочерние элементы, когда я щелкаю правой кнопкой мыши в Firefox.

1 голос
/ 21 декабря 2009

Selenium не хранит кэшированную версию DOM. Это невозможно, потому что он использует JavaScript, и все запросы DOM javascript всегда live .

Что вы используете, чтобы найти элементы? Если вы используете селекторы Xpath / CSS, есть вероятность, что XPath больше не является допустимым или селектор CSS может быть неправильным.

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