まえがき
こんばんは、サルモリです。
今回は下記のテーマです!
今回のテーマ
SeleniumによるDeepl翻訳の自動化
今回の記事では、プログラム上に文字列を用意し、翻訳結果の文字列を受け取るまでを
実現していきたいと思います。
下記の記事にもSeleniumについては解説しているので、ぜひよんでください!
CHECK
-
【2024年2月最新版】C#でMicrosoft Edgeを自動化してみよう
ChatGPTのAPIを使わずに自動化することが可能です。 下記の本を読めば、ChatGPT4でも料金掛からずに自動化できます!KindleUnlimited会員であれば無料で読めます。 まえがき こ ...
続きを見る
では、早速初めていきます!
自動化の関連記事はこちら
Deepl翻訳サイトを開く
まずはDeppl翻訳サイトを自動的に開いてみましょう。
下記のソースコードを作成してください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
using OpenQA.Selenium.Edge; using System; using System.Collections.Generic; using System.Linq; namespace ConsoleApp1 { class Program { static void Main(string[] args) { var driverhonyaku = new EdgeDriver(EdgeDriverService.CreateDefaultService(@"C:\Users\miyam\Downloads\edgedriver_win64", "msedgedriver.exe")); driverhonyaku.Navigate().GoToUrl("https://www.deepl.com/ja/translator"); } } } |
上記のコードを実行すると、Deppl翻訳を開けます。
テキストエリアへの文字列入力
続けて、翻訳前のテキストエリアに文字列の入力をしてみましょう。下記のソースコードを実行してみてください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
using OpenQA.Selenium; using OpenQA.Selenium.Edge; using System; using System.Collections.Generic; using System.Linq; namespace ConsoleApp1 { class Program { static void Main(string[] args) { string beforecontext = "apple"; var driverhonyaku = new EdgeDriver(EdgeDriverService.CreateDefaultService(@"C:\Users\miyam\Downloads\edgedriver_win64", "msedgedriver.exe")); driverhonyaku.Navigate().GoToUrl("https://www.deepl.com/ja/translator"); driverhonyaku.FindElement(By.XPath("//textarea[@class = 'lmt__textarea lmt__source_textarea lmt__textarea_base_style']")).SendKeys(beforecontext); } } } |
16行目のソースコードを追加しました。翻訳前テキストエリアに文字列を入力してみます。
deeplサイトによって、自動的に翻訳後の結果も表示されると思います。
自動化の関連記事はこちら
翻訳後の言語を指定
翻訳したい言語をクリックしてみましょう!今回はドイツ語を選択してみます。
下記のソースコードを実行してください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
using OpenQA.Selenium; using OpenQA.Selenium.Edge; using System; using System.Collections.Generic; using System.Linq; namespace ConsoleApp1 { class Program { static void Main(string[] args) { string beforecontext = "apple"; var driverhonyaku = new EdgeDriver(EdgeDriverService.CreateDefaultService(@"C:\Users\miyam\Downloads\edgedriver_win64", "msedgedriver.exe")); driverhonyaku.Navigate().GoToUrl("https://www.deepl.com/ja/translator"); driverhonyaku.FindElement(By.XPath("//textarea[@class = 'lmt__textarea lmt__source_textarea lmt__textarea_base_style']")).SendKeys(beforecontext); driverhonyaku.FindElement(By.XPath("//span[@class='translate_to']")).Click(); driverhonyaku.FindElement(By.XPath("//button[@dl-test='translator-lang-option-de-DE']")).Submit(); } } } |
17行目のtranslate_toのClickで画面上の訳文ラベルをクリックしていています。
18行目でドイツ語を選択しています。
自動的にドイツ語に変換されたと思います。
翻訳後テキストの取得
最後に翻訳後の内容を取得してみましょう。下記のソースコードを実行してみてください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
using OpenQA.Selenium; using OpenQA.Selenium.Edge; using System; using System.Collections.Generic; using System.Linq; using System.Threading; namespace ConsoleApp1 { class Program { static void Main(string[] args) { string beforecontext = "apple"; Console.WriteLine(beforecontext); var driverhonyaku = new EdgeDriver(EdgeDriverService.CreateDefaultService(@"C:\Users\miyam\Downloads\edgedriver_win64", "msedgedriver.exe")); driverhonyaku.Navigate().GoToUrl("https://www.deepl.com/ja/translator"); driverhonyaku.FindElement(By.XPath("//textarea[@class = 'lmt__textarea lmt__source_textarea lmt__textarea_base_style']")).SendKeys(beforecontext); driverhonyaku.FindElement(By.XPath("//span[@class='translate_to']")).Click(); driverhonyaku.FindElement(By.XPath("//button[@dl-test='translator-lang-option-de-DE']")).Submit(); Thread.Sleep(5000); var aftercontext = driverhonyaku.FindElement(By.XPath("//div[@id='target-dummydiv']")).GetAttribute("textContent"); Thread.Sleep(5000); Console.WriteLine(aftercontext); Console.ReadKey(); } } } |
22行目で翻訳後の文字列を取得しています。GetAttributeで"textContent"を指定すると、文字列を取得できるので、ぜひ覚えて下さい。
result
apple
Apfel
以上で、今回の記事は終了とします。お役に立つことが出来たのなら幸いです。
自動化の関連記事はこちら