Seleniumで翻訳機を作る(3)

スポンサーリンク

では今までのものを実装していきます。動かした様子の動画とソースコードを下に載せておきます。

実装で注意するべき点

Seleniumがブラウザを操作したとき、ブラウザの表示が追いつかないうちに次の操作をするとうまく動作しない場合があります。各操作の間にはThread.sleepを使って1秒くらい間隔を開けると良いです。以下のサンプルではわかりやすいように設定を3秒にしています。

動かした様子

BGMはこのサイトでJavaで作ったものです。

Javaでの実装:平均律クラヴィーアBWV846プレリュード

ソースコード

翻訳するテキストを変えたり言語の設定を変えるなどいろいろ試して見てください。ファイルの入出力をつければテキストファイルの翻訳もできるでしょう。実装の方法がわかればGoogle翻訳以外の翻訳機能を利用することもできるでしょう。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeDriverService;
/**
*
* @author minaberger
*/
public class SeleniumTest {
public static void main(String[] args) throws InterruptedException {
String text = "All day work and no play makes Jack a dull boy.";
System.setProperty(ChromeDriverService.CHROME_DRIVER_EXE_PROPERTY, "driver/chromedriver");
WebDriver driver = new ChromeDriver();
driver.get("https://translate.google.com");
Thread.sleep(3000);
WebElement srcTriangle = driver.findElement(By.id("gt-sl-gms"));
srcTriangle.click();
Thread.sleep(3000);
WebElement srcLang = driver.findElement(By.xpath("//div[@id='gt-sl-gms-menu']//div[text()='English']"));
srcLang.click();
Thread.sleep(3000);
WebElement srcTextArea = driver.findElement(By.id("source"));
srcTextArea.sendKeys(text);
Thread.sleep(3000);
WebElement trgTriangle = driver.findElement(By.id("gt-tl-gms"));
trgTriangle.click();
Thread.sleep(3000);
WebElement trgLang = driver.findElement(By.xpath("//div[@id='gt-tl-gms-menu']//div[text()='Japanese']"));
trgLang.click();
Thread.sleep(3000);
WebElement submit = driver.findElement(By.id("gt-submit"));
submit.click();
Thread.sleep(3000);
WebElement result = driver.findElement(By.id("result_box"));
String translate = result.getText();
Thread.sleep(3000);
System.out.println(translate);
Thread.sleep(3000);
driver.quit();
}
}
import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.chrome.ChromeDriverService; /** * * @author minaberger */ public class SeleniumTest { public static void main(String[] args) throws InterruptedException { String text = "All day work and no play makes Jack a dull boy."; System.setProperty(ChromeDriverService.CHROME_DRIVER_EXE_PROPERTY, "driver/chromedriver"); WebDriver driver = new ChromeDriver(); driver.get("https://translate.google.com"); Thread.sleep(3000); WebElement srcTriangle = driver.findElement(By.id("gt-sl-gms")); srcTriangle.click(); Thread.sleep(3000); WebElement srcLang = driver.findElement(By.xpath("//div[@id='gt-sl-gms-menu']//div[text()='English']")); srcLang.click(); Thread.sleep(3000); WebElement srcTextArea = driver.findElement(By.id("source")); srcTextArea.sendKeys(text); Thread.sleep(3000); WebElement trgTriangle = driver.findElement(By.id("gt-tl-gms")); trgTriangle.click(); Thread.sleep(3000); WebElement trgLang = driver.findElement(By.xpath("//div[@id='gt-tl-gms-menu']//div[text()='Japanese']")); trgLang.click(); Thread.sleep(3000); WebElement submit = driver.findElement(By.id("gt-submit")); submit.click(); Thread.sleep(3000); WebElement result = driver.findElement(By.id("result_box")); String translate = result.getText(); Thread.sleep(3000); System.out.println(translate); Thread.sleep(3000); driver.quit(); } }
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeDriverService;

/**
 *
 * @author minaberger
 */
public class SeleniumTest {

  public static void main(String[] args) throws InterruptedException {
    String text = "All day work and no play makes Jack a dull boy.";

    System.setProperty(ChromeDriverService.CHROME_DRIVER_EXE_PROPERTY, "driver/chromedriver");
    WebDriver driver = new ChromeDriver();
    driver.get("https://translate.google.com");
    Thread.sleep(3000);
    
    WebElement srcTriangle = driver.findElement(By.id("gt-sl-gms"));
    srcTriangle.click();
    Thread.sleep(3000);
    
    WebElement srcLang = driver.findElement(By.xpath("//div[@id='gt-sl-gms-menu']//div[text()='English']"));
    srcLang.click();
    Thread.sleep(3000);
    
    WebElement srcTextArea = driver.findElement(By.id("source"));
    srcTextArea.sendKeys(text);
    Thread.sleep(3000);
    
    WebElement trgTriangle = driver.findElement(By.id("gt-tl-gms"));
    trgTriangle.click();
    Thread.sleep(3000);
    
    WebElement trgLang = driver.findElement(By.xpath("//div[@id='gt-tl-gms-menu']//div[text()='Japanese']"));
    trgLang.click();
    Thread.sleep(3000);
    
    WebElement submit = driver.findElement(By.id("gt-submit"));
    submit.click();
    Thread.sleep(3000);
    
    WebElement result = driver.findElement(By.id("result_box"));
    String translate = result.getText();
    Thread.sleep(3000);
    
    System.out.println(translate);
    Thread.sleep(3000);
    driver.quit();

  }
}

スポンサーリンク

シェアする

フォローする

%d人のブロガーが「いいね」をつけました。