gpt4 book ai didi

javascript - 将 javascript webdriver.Capabilities 转换为字符串

转载 作者:行者123 更新时间:2023-11-30 11:48:11 24 4
gpt4 key购买 nike

在 typescript 中使用 Protractor (selenium) 我可以调用 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) 也不会产生任何结果。该对象看起来像某种 map 。我想将这个对象保存到一个文件中,console.log 有什么特殊的魔力,我该怎么做?

如果有人知道这是什么类型的对象,那也会有所帮助。我认为它可能是 ES6 映射,但与 Converting ES6 Maps to and from JSON 中的示例不同,它不是迭代器。

最佳答案

getCapabilities 方法返回一个 ES6 MAP 对象。直接序列化这个对象似乎是不可能的。所以你最好的机会可能是序列化条目:

browser.driver.getCapabilities().then(caps => {
var entries = Array.from(caps.entries());
console.log(JSON.stringify(entries));
});

或者将条目转换为对象,然后将其序列化:

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));
});

关于javascript - 将 javascript webdriver.Capabilities 转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40234096/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com