在互联网上找到的每个量角器的例子似乎都是使用具有web URI的browser.get.
browser.get('http://localhost:8000');
我想使用Selenium来简单地导航到一个文件://路径,以便我不需要运行本地Web服务器来执行测试.我需要的是一个简单的HTML页面和一些资产.
这似乎不行.
browser.get('file:///Users/myusername/dev/mpproject/spec/support/index.html');
当我将该URI粘贴到浏览器窗口中时,我会获得一个HTML页面.当我尝试用量角器打开它,我得到一个超时.
解决方法
我发布了我有
found in here的解决方案,帮助我使用文件协议运行量角器.
By default,Protractor use
data:text/html,<html></html>
asresetUrl
,butlocation.replace
from thedata:
to thefile:
protocol is not allowed (we’ll get “not allowed local resource” error),so we replaceresetUrl
with one with thefile:
protocol:
exports.config = { // ... baseUrl: 'file:///absolute/path/to/your/project/index.html',onPrepare: function() { // By default,Protractor use data:text/html,<html></html> as resetUrl,but // location.replace from the data: to the file: protocol is not allowed // (we'll get ‘not allowed local resource’ error),so we replace resetUrl with one // with the file: protocol (this particular one will open system's root folder) browser.resetUrl = 'file://'; } // ... };
如果要运行到项目文件夹的相对路径,那么您可以使用Node.js工具,因为量角器在Node.js环境中运行.例如,__dirname将返回一个绝对路径,以保存您的Protractor配置文件的目录.结果使用:
exports.config = { // ... baseUrl: 'file://' + __dirname + '/spec/support/index.html' // ... };
另外,如果您的应用程序向某些端点发出XHR请求,哪些不允许从文件:,则可能必须使用自定义标志运行测试浏览器.在我的情况下是Chrome:
exports.config = { // ... capabilities: { browserName: 'chrome',chromeOptions: { // --allow-file-access-from-files - allow XHR from file:// args: ['allow-file-access-from-files'] } } // ... }