【问题标题】:Get Emulator list from Chrome从 Chrome 获取模拟器列表
【发布时间】:2016-09-20 07:01:12
【问题描述】:

根据ChromeDriver site,用户可以使用在 chrome 中创建/存在的模拟器来执行 Selenium。

Detailed View Here.

我想显示来自Chrome 的所有已创建/可用的模拟器。 Chrome 可能会将这些详细信息存储在某个 json 文件或其他东西中。如果是这样,如何访问它并在 Java 中打印它

【问题讨论】:

  • @yeppe 不是来自 api。从安装 chrome 的本地机器
  • developer.chrome.com/multidevice/user-agent...检查一下...浏览器的用户代理字符串 (UA) 有助于识别正在使用的浏览器、版本和操作系统。当特征检测 API 不可用时,使用 UA 将行为或内容自定义到特定浏览器版本。
  • 是的,我知道了,我现在正在使用它。但我不想那样,我想得到模拟器列表

标签: java google-chrome selenium-chromedriver


【解决方案1】:

做了一个Notepad++ Find in Files 并找到了。

数据以JSON格式存储在文件中

C:\Users\Your UserName\AppData\Local\Google\Chrome\User Data\Default\Preferences

键下

devtools>首选项>standardEmulatedDeviceList

我使用 Jackson 来解析 JSON

import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.File;
import java.io.IOException;
import java.util.List;
import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;

public class Test {

    public static void main(String[] args) {
        try {
            ObjectMapper mapper = new ObjectMapper();
            Map map = mapper.readValue(
                    new File("C:\\Users\\<UserName>\\AppData\\Local\\Google\\Chrome\\User Data\\Default\\Preferences"),
                    Map.class);
            Map devTools = (Map) map.get("devtools");
            Map preferences = (Map) devTools.get("preferences");
            String standardEmulatedDeviceList = (String) preferences.get("standardEmulatedDeviceList");
            List emulatorMap = mapper.readValue(standardEmulatedDeviceList, List.class);
            System.out.println(emulatorMap.size());
            for (Object object : emulatorMap) {
                Map device = (Map) object;
                System.out.println(device.get("title"));
            }
        } catch (IOException ex) {
            Logger.getLogger(Test.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-08-03
    • 2011-11-17
    • 2012-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多