Проблема странная, причины мне не понятны, описываю как есть.
Использую Gemini вместе с PhantomJS, так что может этого его проблема. Но поскольку PhantomJS в рекомендациях на странице — все равно надо обратить внимание.
В общем, если снимать скриншоты с ряда страниц, и снимать их не с localhost, а с удаленного сервера, то всегда проблемы со снятием 1го скриншота. От страницы не зависит — проблемы с любой страницей, если она первая в списке. Если снимать те же самые скриншоты с localhost, такой проблемы нет.
Проблема решается добавлением в список "ненужной" первой страницы и использованием на ней skip()
:
var gemini = require('gemini');
var examples = [
'1.2-1',
'1.1',
'2.1'
];
var pages = [];
pages.push({
'name': 'index',
url: '/styleguide/#'
});
examples.forEach(function(example) {
pages.push({
'name': example,
url: '/styleguide/#/section/' + example + '/fullscreen'
});
});
pages.forEach(function(page) {
gemini.suite(page.name, function(suite) {
if (page.name === 'index') {
suite.skip();
}
suite.setUrl(page.url)
.setCaptureElements('body')
.capture('plain', function(actions, find){
actions.waitForElementToShow('shadow-dom', 7000);
});
});
});
/cc @arikon @sevinf
А, да, это только в случае применения
waitForElementToShow
иwaitForJSCondition
. Просто снятие скриншота работает. И простоwait
тоже работает.Похоже на баг или у нас или в GhostDriver. Я покопаю и отпишу попозже