我正在使用量角器,当我将chrome指定为browsertype时,它可以正常工作。我正在寻找一个无头浏览器示例代码,我已经找了phantomJs但我无法运行其中任何一个。是否有另一个无头浏览器的工作样本?
答案 0 :(得分:5)
除了PhantomJS之外没有其他无头浏览器,而后者与量角器是一个死胡同。
您可以尝试docker-selenium,或者,如果您不喜欢Docker,可以使用ubuntu-headless样本自行完成。这两种解决方案都提供Chrome& Firefox使用Xvfb,即使没有真正的DISPLAY。
更新2 似乎可以在OSX中运行Xvfb:http://xquartz.macosforge.org/landing/
更新1 Mac OSX selenium headless解决方案:
因此可以在Mac上测试硒无头。真的不是无头,而是作为另一个用户,所以它不会干扰您当前的用户显示。 为此,您需要kickstart:http://support.apple.com/en-us/HT201710 开始使用kickstart实用程序
sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart -restart -agent
激活远程桌面共享,为所有用户启用访问权限并重新启动ARD代理:
sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart -activate -configure -access -on -restart -agent -privs -all
Apple Remote Desktop 3.2或更高版本
允许所有用户访问并为所有用户提供完全访问权限
sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart -configure -allowAccessFor -allUsers -privs -all
Kickstart帮助命令
sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart -help
答案 1 :(得分:1)
当存在div时,PhantomJS在某些网站上是Protractor的死胡同,它是固定的并且始终可见(由于https://github.com/ariya/phantomjs/issues/11637)。否则你可以使它工作:
使用phantomjs:~1.9.0和量角器:~1.8.0
内部量角器配置文件寄存器功能:
onPrepare : function() {
var minWindowWidth = 1024,
minWindowHeight = 768,
browserName,
platform,
window = browser.manage().window();
browser.getCapabilities().then(function (capabilities) {
browserName = capabilities.caps_.browserName;
platform = capabilities.caps_.platform;
}).then(function getCurrentWindowSize() {
return window.getSize();
}).then(function setWindowSize(dimensions) {
var windowWidth = Math.max(dimensions.width, minWindowWidth),
windowHeight = Math.max(dimensions.height, minWindowHeight);
return window.setSize(windowWidth, windowHeight);
}).then(function getUpdatedWindowSize() {
return window.getSize();
}).then(function showWindowSize(dimensions) {
console.log('Browser:', browserName, 'on', platform, 'at', dimensions.width + 'x' + dimensions.height);
console.log("Running e2e tests...");
});
},