我正在尝试测试硒中的copy
功能。在浏览器中,这里包含一些网格数据,通常我可以使用右键单击来复制该数据,并可以粘贴到本地xl表中。因此,尝试使用硒进行测试的功能相同。
现在,我可以右键单击数据,并可以使用硒单击复制。之后,尝试将这些数据粘贴到本地文件中即出现异常,即java.awt.HeadlessException
。
以下我尝试获取数据并粘贴的方式:
public String getClipBoardData(){
try {
return (String) Toolkit.getDefaultToolkit().getSystemClipboard().getData(DataFlavor.stringFlavor);
} catch (UnsupportedFlavorException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
public void writeInFile(String data){
try{
FileWriter fstream = new FileWriter("path-to-your-file");
BufferedWriter out = new BufferedWriter(fstream);
out.write(data);
out.close();
}catch (Exception e){//Catch exception if any
System.err.println("Error: " + e.getMessage());
}
}
我不确定,我是否使用了正确的方法,如果有人有想法请帮助我。在这里,getClipBoardData()
中出现异常。
答案 0 :(得分:0)
public String getClipboardContents() {
String result = "";
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
//odd: the Object param of getContents is not currently used
Transferable contents = clipboard.getContents(null);
boolean hasTransferableText =
(contents != null) &&
contents.isDataFlavorSupported(DataFlavor.stringFlavor);
if (hasTransferableText) {
try {
result = (String)contents.getTransferData(DataFlavor.stringFlavor);
}
catch (UnsupportedFlavorException | IOException ex){
System.out.println(ex);
ex.printStackTrace();
}
}
return result;
}
尝试使用此方法代替getClipBoardData()