Я использую Intel html5 app development framework. В частности, я использую their carousel plugin. Но я подозреваю, что знание webdriver более полезно здесь.Selenium ElementNotVisibleException при приложении div применяется преобразование
Способ, которым их карусель работает, заключается в том, что страницы плавают рядом друг с другом внутри div, который имеет ограниченную ширину и перекрытие. Вы можете видеть только одну из страниц за раз в окне просмотра div.
Когда вы касаетесь, чтобы перейти к следующему div, он применяет преобразование css для анимации, сдвигая пролив страницы. Это прекрасно работает. Однако у webdriver возникают проблемы с элементами внутри анимационного div.
Когда вы находитесь на первой странице, селен сообщает все элементы (на обеих страницах), как показано, хотя половина из них скрыта. Когда вы перешли на вторую страницу, селен сообщает все элементы (на обеих страницах), которые не отображаются.
Я отслеживал его вниз к этому CSS собственности, которая будет применяться к анимации DIV:
-webkit-transform: translate3d(-1024px, 0px, 0);
Когда это применяется, селен считает этот элемент является невидимым. Когда я удаляю его с помощью инструментов разработчика Chrome, он считает, что все они видны.
Два способа вы могли бы быть в состоянии помочь мне:
- Могу ли я получить селен, чтобы сообщить правильно видимость этих элементов? Возможно, путем настройки того, как работает карусель? (Это с открытым исходным кодом).
- Могу ли я сказать селену просто щелкнуть элемент в любом случае, даже если он «невидим»?
Я также спросил Intel об этом на своих форумах (https://forums.html5dev-software.intel.com/viewtopic.php?f=28&t=4111), но похоже, что это больше проблема webdriver , видя, как элемент на самом деле виден! –
Это, похоже, повторяющаяся проблема, с которой команда Селен долгое время занималась. См. https://github.com/lightbody/browsermob-proxy#using-with-selenium. Какую версию селена вы используете? Попробуйте обновить его до текущего 2.33.0, со временем все время улучшаются. Работает ли он в любом браузере или вообще не работает (FF и Chrome - это главное, что должно работать). –
Я пробовал последнюю версию селена. Я использую Chrome в Windows 8.Я могу протестировать в другом браузере, но на самом деле я разрабатываю гибридное приложение для таргетинга на веб-кит, поэтому его нелегко запускать в других браузерах. –