java
  • selenium-webdriver
  • selenium-grid
  • remotewebdriver
  • 2013-03-25 3 views 0 likes 
    0

    Я пытаюсь проверить видимость WebElements после выполнения некоторого javascript. В WebElements найдены следующие XPaths:Selenium RemoteWebDriver, похоже, не распознает изменения javascript для веб-элементов

    public static final String MOBILE_APPS_RUNNING_APP_XPATH = "//*[@id='app_slider']/ul/li[1]/a[@class='app nike-running']"; 
    public static final String MOBILE_APPS_FUELBAND_APP_XPATH = "//*[@id='app_slider']/ul/li[1]/a[@class='app nike-fuelband']"; 
    public static final String MOBILE_APPS_BASKETBALL_APP_XPATH = "//*[@id='app_slider']/ul/li[1]/a[@class='app nike-basketball']"; 
    public static final String MOBILE_APPS_TRAINING_APP_XPATH = "//*[@id='app_slider']/ul/li[2]/a[@class='app nike-training']"; 
    public static final String MOBILE_APPS_KINECT_APP_XPATH = "//*[@id='app_slider']/ul/li[2]/a[@class='app nike-kinect']"; 
    public static final String MOBILE_APPS_MORE_APPS_XPATH = "//*[@id='app_slider']/ul/li[2]/a[@class='app nike-more']"; 
    

    Первые три элемента видны при загрузке страницы. Функция javascript заставляет элементы перемещаться через атрибут стиля -moz-transform: translate3d(-1084px, 0px, 0px);, так что следующие три элемента становятся видимыми. Это хорошо работает с локальным браузером Firefox, который подбирает изменения, но когда я пытаюсь использовать RemoteWebDriver, прикрепленный к браузеру Firefox в настройке сетки, элементы больше не видны. Я проверил с помощью скриншота, что элементы все еще видны в RemoteWebDriver, но я подозреваю, что элементы кэшируются с помощью RemoteWebDriver, а не из обновленного DOM.

    Есть ли способ проверить это, и если да, то как я могу обновить DOM, чтобы я мог видеть, что элементы теперь видны?

    Чтобы уточнить: я использую метод driver.findElement(By.xpath(...)) после выполнения javascript, и я жду, когда элемент станет видимым, чего он никогда не сделает.

    ответ

    0

    Оказалось, что версии selenium-сервера (и FirefoxDriver) различаются между моей локальной машиной и сеткой, хотя версия Firefox была совместима между двумя средами. На моей локальной машине (которая работала по назначению) я использовал selenium-server_2.25.0, а в сетке использовался selenium-server_2.28.0 (который не работал должным образом). Одним из отличий, которое имело эффект, было изменение FirefoxDriver для использования исходных событий Firefox. Я подтвердил, что обновление selenium-server_2.31.0 восстановило функциональность (и видимость) по назначению.

    Смежные вопросы