2015-03-04 4 views
1

В навигации CSS, где :hover расширяет подъярус и не нажимает. При нажатии на элемент верхнего уровня происходит изменение вида. Как я могу пройти такую ​​навигацию с помощью транспортира?Перемещение CSS навигация с транспортиром

(Это несколько псевдо-код)

например.

it 'should do things', -> 
    Page.login(browser, '/#/area') 
    .then -> 
    # Here I need to expand the navigation in order to 
    # make the sub-menu visible. Hover 1500ms. 
    UI.menu.hover('1500') 
    .then -> 
    expect(UI.menu.submenu.visible()).to.be.true 
    UI.menu.submenu.item.click() 
    .then -> 
    expect(something()).to.be.true 

Возможно ли это с транспортиром?

Я читал немного о action()here, но я не мог действительно заключить, каков был результат.


  • AngularJS 1.2.16
  • Угломеры 0.22.0
  • CoffeeScript
+0

Не забывайте, что парение очень подвижна недружественный. Поэтому стоит подумать, если это лучшее решение для UX, в первую очередь. – firstdoit

+1

Благодаря @firstdoit - хотя это приложение не предназначено для поддержки любого устройства за пределами рабочего стола. – miphe

ответ

0

действия WebDriver является путь. После перемещения мыши в правый элемент, вы можете подождать там Xms, что означает, что вы наводите элемент на элемент.

CoffeeScript:

hoverEl = (el, duration) -> 
    browser.driver.actions(). 
    mouseMove(el). 
    perform() 
    .then -> 
    browser.driver.wait -> 
     setTimeout(-> 
     return true 
     , duration) 

Или регулярные JS:

var hoverEl; 

hoverEl = function(el, duration) { 
    return browser.driver.actions().mouseMove(el).perform().then(function() { 
    return browser.driver.wait(function() { 
     return setTimeout(function() { 
     return true; 
     }, duration); 
    }); 
    }); 
}; 

< Protractors docs on actions >

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