Скопируйте из браузера и вставьте в локальный файл - Selenium - PullRequest
0 голосов
/ 02 апреля 2019

Я пытаюсь проверить 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 голосов
/ 03 апреля 2019
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 ()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...