我可以在打字稿中使用量角器(硒)browser.driver.getCapabilities()
来获取看起来像这样的对象:
Capabilities {
'acceptSslCerts' => true,
'applicationCacheEnabled' => false,
'browserConnectionEnabled' => false,
'browserName' => 'chrome',
'chrome' => { chromedriverVersion: '2.24.417431 (9aea000394714d2fbb20850021f6204f2256b9cf)',
userDataDir: 'C:\\Users\\***\\AppData\\Local\\Temp\\scoped_dir12788_29679' },
'cssSelectorsEnabled' => true,
'databaseEnabled' => false,
'handlesAlerts' => true,
'hasTouchScreen' => false,
'javascriptEnabled' => true,
'locationContextEnabled' => true,
'mobileEmulationEnabled' => false,
'nativeEvents' => true,
'networkConnectionEnabled' => false,
'pageLoadStrategy' => 'normal',
'platform' => 'Windows NT',
'rotatable' => false,
'takesHeapSnapshot' => true,
'takesScreenshot' => true,
'version' => '54.0.2840.71',
'webStorageEnabled' => true }
通过console.log馈送时的样子。但是,如何在我的代码中获得此字符串表示形式呢?
caps.toJSON()
什么也不返回。JSON.stringify(caps)
,也一无所有。for(let foo in caps)
也不产生任何东西。该对象看起来像某种地图。我想将此对象保存到文件中,console.log有什么特殊的魔术作用,我该怎么做?
如果有人知道这是哪种物体,那也将有所帮助。我以为可能是ES6映射,但与将ES6映射与JSON转换中的示例不同,它不是迭代器。
该方法getCapabilities
返回一个ES6MAP
对象。似乎不可能直接序列化此对象。因此,您最好的机会可能是序列化这些条目:
browser.driver.getCapabilities().then(caps => {
var entries = Array.from(caps.entries());
console.log(JSON.stringify(entries));
});
或将条目转换为Object
,然后对其进行序列化:
browser.driver.getCapabilities().then(caps => {
var obj = Array.from(caps.entries()).reduce((o, v) => (o[v[0]] = v[1], o), {});
console.log(JSON.stringify(obj));
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句