2014-12-18 2 views
2

Пользовательский интерфейс, который я тестирую, использует iframe. Я пытаюсь переключиться на этот iframe с помощью вызова «.frame (0)».переключиться на кадр с помощью Nightwatch.js

module.exports = { 
    "test" : function (browser) { 
    browser 
     .url("my_url") 
     .waitForElementVisible(".frame-application-scroll-wrapper", 30000) 
     .frame(0) 
     .waitForElementPresent("#page-content", 30000) 
     .end(); 
    } 
}; 

Однако # страница-контент никогда не видел, который заставляет меня думать, что команда смены кадров не работает (но не возвращает ошибку ни).

Любые идеи?

Спасибо, Пол

+1

Может быть, что Iframe не заряжено перед метод вызывается. – Neoaptt

ответ

5

, как Neoaptt упоминалось (спасибо!) Вопрос в том, что элемент IFrame был или нет, или не загружен. Добавление паузы решило мою проблему.

Кстати, если вы хотите, чтобы выйти из выбранного кадра, вы должны использовать «.frame (нуль)»

module.exports = { 
    "test" : function (browser) { 
    browser 
     .url("my_url") 
     .waitForElementVisible(".frame-application-scroll-wrapper", 30000) 
     // give time to the iframe to be available 
     .pause(5000) 
     .frame(0) 
       .waitForElementPresent("#page-content", 30000) 
       .frame(null) 
     // we are now back to the main page 
     // ... more code here ... 
     .end(); 
    } 
}; 

Что же помогло мне отладить было использовать --verbose вариант, например, :

nightwatch -t tests/test4.js --verbose 

Это отобразит в вашем терминале все данные, которыми обмениваются узлы и селен.

Спасибо, Пол

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