从浏览器复制并粘贴到本地文件-Selenium

时间:2019-04-02 16:53:33

标签: java selenium

我正在尝试测试硒中的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()中出现异常。

1 个答案:

答案 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()