我的系统上安装了多个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来选择登录安全网站的证书?
更新2:我必须将pfx证书转换为pem文件格式才能使其正常工作.
我必须传递带有时区信息的消息 (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)
我期待“美国/洛杉矶”的名单,......
我正在尝试使用 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 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
我正在接收来自某些功能的矢量列表
(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中使用完全不变性.
请建议实现它的有效方法.
java ×3
java-8 ×2
apache ×1
apache-poi ×1
concurrency ×1
excel ×1
immutability ×1
lambda ×1
list ×1
pfx ×1
phantomjs ×1
scala ×1
selenium ×1
timezone ×1
xlsx ×1