최근 중국어 공부를 위해 컴퓨터로 간단한 문서 작성 중 병음을 써야할 일이 생겼다. 컴퓨터의 내장 입력기를 활용한 병음 입력은 너무 비효율적이고 귀찮아서 셀레니움을 활용해 파파고에서 병음을 가져와 붙여넣는 방법을 통해 일을 간단히 만드려했다.
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.By;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import java.awt.Toolkit;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.StringSelection;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class pinyin {
private WebDriver driver;
private WebElement element;
private String url;
public static String WEB_DRIVER_ID = "webdriver.chrome.driver";
public static String WEB_DRIVER_PATH = "/Users/Kar/Downloads/chromedriver";
public pinyin (){
System.setProperty(WEB_DRIVER_ID, WEB_DRIVER_PATH);
ChromeOptions options = new ChromeOptions();
options.addArguments("--start-maximized");
options.addArguments("--disable-popup-blocking");
options.addArguments("--headless");
options.addArguments("--no-sandbox");
driver = new ChromeDriver(options);
Scanner sc = new Scanner(System.in);
System.out.println("번역할 문장을 입력하여 주십시오.");
String str = sc.nextLine();
url = "https://papago.naver.com/?sk=auto&tk=ko&st="+str;
}
public void activateBot() {
try {
driver.get(url);
Thread.sleep(5000);
element = driver.findElement(By.xpath("//*[@id=\"btn-toolbar-source\"]/span[3]/span/span/button"));
element.click();
Thread.sleep(5000);
WebElement el2 = driver.findElement(By.className("pinyin_text___24doI"));
List<WebElement> el3 = el2.findElements(By.tagName("rt"));
for (int i = 0; i < el3.size(); i++) {
System.out.print(el3.get(i).getText());
}
}
catch (Exception e) {
e.printStackTrace();
} finally {
driver.close();
System.out.println();
pinyin bot1 = new pinyin();
bot1.activateBot();
}
}
public static void main(String[] args) {
pinyin bot1 = new pinyin();
bot1.activateBot();
}
}
코드 전체이다.

일의 효율을 높히기 위해서 한 문장의 병음 출력이 마친 후 다시 프로그램을 호출해 계속 병음을 가져올 수 있게 하였다.