
Selenium не находит существующий элемент
Автор almagnit, 14 авг 2011 19:04
Сообщений в теме: 4
#1
Отправлено 14 августа 2011 - 19:04
Что можно предпринять в Selenium WebDriver, если нужный элемент находится за областью просмотра, есть ли какой нибудь скролл к этому элементу ?
И скажите правильно ли, оборачивать WebDriver в WebDriverBackedSelenium, если тесты пишутся с нуля ?
PS
Тест на Java под IE8
И скажите правильно ли, оборачивать WebDriver в WebDriverBackedSelenium, если тесты пишутся с нуля ?
PS
Тест на Java под IE8
#2
Отправлено 14 августа 2011 - 20:54
Ничего не надо предпринимать. Страница сама автоматически проскроллируется.Что можно предпринять в Selenium WebDriver, если нужный элемент находится за областью просмотра, есть ли какой нибудь скролл к этому элементу ?
Неправильно. WebDriverBackedSelenium -- это всего лишь эмулятор старого API на новом движке. Он нужен только для миграции старых тестов.И скажите правильно ли, оборачивать WebDriver в WebDriverBackedSelenium, если тесты пишутся с нуля ?
Рекомендую почитать вот эту пояснительную заметку.
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium
#3
Отправлено 14 августа 2011 - 21:41
/* Выполняем нажатие на пиктограмме "Добавить пользователей" */ driver.findElement(By.name("edit_group_members_contents_Image_0")).click(); /* Переходим во фрейм справочника организационной структуры */ driver.switchTo().frame(0);
Если окно браузера развернуто на весь экран, то этот код выполняется, если окно не развернуто, то появляются исключения
(не знаю с чем связано, но сначала получал одно исключение, теперь другое)
На клик вываливалось: ElementNotVisibleException (иконка действительно не видна в не развернутом окне, я стал его разворачивать и отписал на форуме)
На фрейм: NoSuchFrameException (я так понял клик не прошел и фрейм не появился, это я после Вашего ответа решил перепроверить)
Если запускаю тест и разворачиваю окно, то все проходит нормально.
PS
Кстати да, я обратил внимание, действительно скролл есть, но почему-то не к этому img, будет время попробую другие локаторы на этот элемент и его родителей.
#4
Отправлено 15 августа 2011 - 07:43
/* Выполняем нажатие на пиктограмме "Добавить пользователей" */ driver.findElement(By.name("edit_group_members_contents_Image_0")).click(); /* Переходим во фрейм справочника организационной структуры */ driver.switchTo().frame(0);
Если окно браузера развернуто на весь экран, то этот код выполняется, если окно не развернуто, то появляются исключения
(не знаю с чем связано, но сначала получал одно исключение, теперь другое)
На клик вываливалось: ElementNotVisibleException (иконка действительно не видна в не развернутом окне, я стал его разворачивать и отписал на форуме)
На фрейм: NoSuchFrameException (я так понял клик не прошел и фрейм не появился, это я после Вашего ответа решил перепроверить)
Если запускаю тест и разворачиваю окно, то все проходит нормально.
PS
Кстати да, я обратил внимание, действительно скролл есть, но почему-то не к этому img, будет время попробую другие локаторы на этот элемент и его родителей.
В своем проекте перед каждым кликом выполняем скрол элемента через JavaScript:
((RemoteWebDriver) webDriver).executeScript("arguments[0].scrollIntoView()", elementToBeClicked);
#5
Отправлено 15 августа 2011 - 08:05
Если само не скроллируется -- можно это делать явно. Но вообще-то если автоматического скроллирования не происходит -- это баг в Selenium, в этом случае рекомендую создать по этому поводу баг-репорт.
Но я бы предположил, что эта картинка на самом деле не видна. Может быть она становится видимой, например, только при наведении мыши (а до этого на её месте видна другая картинка).
Но я бы предположил, что эта картинка на самом деле не видна. Может быть она становится видимой, например, только при наведении мыши (а до этого на её месте видна другая картинка).
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных