Возникли проблемы объясняя это:непоследовательные SVG элементов из Highcharts делает тесты не с Гебом/Selenium и PhantomJS
Моего Геба/Селен тесты делают утверждения на SVG rect
элемента ширина/высоту, порожденную Highcharts.
Тесты проходят локально на Chrome/Windows и передаются PhantomJS в среде Linux CI. Однако они не работают, когда я запускаю их на PhantomJS локально в Windows. Высота, по-видимому, составляет несколько пикселей - последовательно, она составляет около 1 или 2 пикселя, когда я запускаю локально на PhantomJS в Windows. Например, мое утверждение о том, что rect.height=168
терпит неудачу, потому что это 166
.
Я подтвердил, что это та же версия PhantomJS в обеих средах.
Что еще я могу пропустить? И что может заставить Highcharts генерировать различные SVG в Chrome и PhantomJS?
Я могу выделить это из испытательной базы и выполнить с PhantomJS непосредственно:
var webpage = require('webpage');
var page = webpage.create();
page.viewportSize = {width: 1280, height: 1024};
page.open("http://www.highcharts.com/demo/column-basic", function(status) {
var height = page.evaluate(function() {
return jQuery('g.highcharts-series rect:nth(0)').attr('height');
});
console.log(height);
phantom.exit();
});
Этот код выведет 52
при запуске на Linux и 53
, когда для Windows.
могут быть связаны с различными настройками DPI в Linux (75), Mac (72) и окна (96). Если это действительно так, вам нужно будет изменить константы в исходном коде и перекомпилировать его. –
Похоже, это может быть какая-то проблема округления. Я не понимаю, почему Chrome в Windows соответствует PhantomJS на Linux, но PhantomJS на Windows отличается. – wrschneider