小编Man*_*nvi的帖子

如何使用安装了多个pfx证书的chromedriver登录网站

我的系统上安装了多个pfx证书(个人信息交换).当我必须使用chrome登录时,我只需选择要选择的证书(Windows安全性)弹出窗口,其中显示选择证书.如何在selenium chrome驱动程序中实现此功能(选择证书)功能.

我在搜索时遇到的两种方法是:1)为每个证书创建不同的配置文件(如果我在生产服务器上有1000个证书,则不可扩展.)2)使用PhantomJS Web浏览器实现:

我正在做的事情:

DesiredCapabilities cap = DesiredCapabilities.chrome();
ImmutableMap<String, String> commandLineArguments = ImmutableMap.<String, String>builder()
        .put("web-security", "false")
        .put("ssl-protocol", "any")
        .put("ignore-ssl-errors", "true")
        .put("webdriver-loglevel", "DEBUG")
        .put("ssl-client-certificate-file", certificatePath)
        .put("ssl-client-key-passphrase", certificatePassword)
        .build();
String[] params = commandLineArguments.entrySet().stream()
        .map(e -> String.format("--%s=%s", e.getKey(), e.getValue()))
        .collect(Collectors.toList())
        .toArray(new String[0]);

cap.setCapability(PhantomJSDriverService.PHANTOMJS_CLI_ARGS, params);
cap.setCapability(ChromeOptions.CAPABILITY, options);
WebDriver driver = new PhantomJSDriver(cap);
driver.get(Url);
Run Code Online (Sandbox Code Playgroud)

但它给了我空白页.我怀疑,我正在使用"ssl-client-key-passphrase"来表示"密码"的个人信息交换文件.如何在chrome功能上指定密码.或者我如何编码chromedriver来选择登录安全网站的证书?

更新1:我尝试添加如下所示的注册表设置并重新启动系统. 在此输入图像描述

更新2:我必须将pfx证书转换为pem文件格式才能使其正常工作.

java selenium pfx phantomjs selenium-chromedriver

6
推荐指数
0
解决办法
672
查看次数

在Java中使用国家代码获取地区的时区

我必须传递带有时区信息的消息 (jms),例如 (America/Los_Angeles),但我只有国家/地区名称和代码。如果可能的话,用 Java 代码获取时区信息。我在某处读到这个:

System.out.println(TimeZone.getTimeZone("US"));
Run Code Online (Sandbox Code Playgroud)

但它的输出为

sun.util.calendar.ZoneInfo[id="GMT",offset=0,dstSavings=0,useDaylight=false,transitions=0,lastRule=null]
Run Code Online (Sandbox Code Playgroud)

我期待“美国/洛杉矶”的名单,......

java timezone google-api-java-client java-8 java-calendar

5
推荐指数
2
解决办法
1万
查看次数

Java从Apache poi获取excel单元格背景颜色

我正在尝试使用 Apache POI 获取.xlsx文件中的单元格颜色信息。

方法cellStyle.getFillBackgroundColor()返回很短。如何将短格式转换为java.awt.Color或任何其他格式( XSSFColor)。

最终我想根据单元格的背景颜色存储单元格的值。

 Workbook workbook = WorkbookFactory.create(new FileInputStream (new File(SAMPLE_XLSX_FILE_PATH)));
    Sheet sheet = workbook.getSheetAt(0);
    DataFormatter dataFormatter = new DataFormatter();
    sheet.forEach(row -> {
        row.forEach(cell -> {
            String cellValue = dataFormatter.formatCellValue(cell);
            CellStyle cellStyle = cell.getCellStyle();
            System.out.println(cellStyle.getFillBackgroundColor());
            //Color userColor = cellStyle.getFillBackgroundColor(); //ERROR 
        });
        System.out.println();
    });
Run Code Online (Sandbox Code Playgroud)

我使用的是 3.6 版本,我认为它不支持 getFillBackgroundColorColor()

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>3.6</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

java apache excel xlsx apache-poi

3
推荐指数
1
解决办法
3183
查看次数

为什么lambda里面的地图没有运行?

我试图在java 8中学习并发和lambdas.但是我的代码没有在map中输入lambda块.

List<Book> bookList = new ArrayList<Book>();
    isbnList
    .stream()
    .map(isbn -> (CompletableFuture.supplyAsync( () -> {
        try {
            List<String> pageContents = getUrlContents(webLink + isbn);
            return new Book(
                parseBookTitle(pageContents),
                isbn,
                parseRank(pageContents)
            );
        } catch (IOException ex) {
            return null;
        }
    })).thenApply(a -> bookList.add(a))
    );
Run Code Online (Sandbox Code Playgroud)

在调试时,代码退出.map行,我得到空bookList.顺序代码给我正确的结果.

concurrency lambda java.util.concurrent java-8 concurrent.futures

2
推荐指数
1
解决办法
878
查看次数

Scala:以不可变的方式列出唯一项目列表的向量列表

我正在接收来自某些功能的矢量列表

(List(Vector(1), Vector(1, 2), Vector(1, 3), Vector(1, 2, 4), Vector(1, 5)))
Run Code Online (Sandbox Code Playgroud)

我想将它转换为不同的整数值

List(1,2,3,4,5)
Run Code Online (Sandbox Code Playgroud)

在Scala中使用完全不变性.

请建议实现它的有效方法.

functional-programming scala list immutability

0
推荐指数
1
解决办法
91
查看次数