Идея заключается в том, чтобы использовать mouseDown()
первый:
/**
* Presses a mouse button. The mouse button will not be released until
* {@link #mouseUp} is called, regardless of whether that call is made in this
* sequence or another. The behavior for out-of-order events (e.g. mouseDown,
* click) is undefined.
...
*/
Затем вызовите browser.sleep()
на Х секунд.
Затем вызовите mouseUp()
отпустить кнопку мыши:
/**
* Releases a mouse button. Behavior is undefined for calling this function
* without a previous call to {@link #mouseDown}.
...
*/
Код:
browser.actions().mouseDown(element).perform();
browser.sleep(5000);
browser.actions().mouseUp(element).perform();
где element
является целевым элементом click-and-hold
.
Рабочий пример (на основе this jsfiddle):
require('jasmine-expect');
describe('Test Click And Hold', function() {
beforeEach(function() {
browser.ignoreSynchronization = true;
browser.get('http://jsfiddle.net/LysCF/13/embedded/result/');
browser.sleep(5000);
});
it('should show appropriate list elements after click and hold', function() {
var frame = browser.findElement(by.xpath('//div[@id="result"]/iframe'));
browser.switchTo().frame(frame);
var element = browser.findElement(by.css('div.hold_trigger'));
browser.actions().mouseDown(element).perform();
browser.sleep(5000);
browser.actions().mouseUp().perform();
// check expectations
});
});
WOW! Теперь я знаю, что не знаю многого! ;-) Я думал, что мне нужно использовать только команду транспортира, но мне кажется, что мне нужно узнать и узнать Jasmine гораздо больше! Большое спасибо! – David