自動化

DeepL翻訳を自動化しながら、Seleniumのエラーを対策してみる。

今回のテーマ

下記の記事の続きです。

CHECK

エラーメッセージ:OpenQA.Selenium.ElementNotInteractableException: element not interactableの解決方法1

Seleniumの操作方法の説明は下記に記述しております。 今回のテーマ element not interactableのエラー解決方法を3つ紹介します 自動化の関連記事はこちら   el ...

続きを見る

 

前回の記事では、下記の3点でエラーを解消できるとお話ししました。

ポイント

  • 画面を最大化する。
  • スクロールを合わせる。
  • 一つのアクション後に一定時間処理を空けてみる。

一つずつ記述してみましょう。今回はDeepl翻訳を例に自動プログラムを組んでみます。

翻訳する外国語を選ぶ処理を作ってみます。
KappaChan

 

イタリア語を選択して、テストを翻訳できていると思います。

下記が参照している属性一覧です。

属性一覧

翻訳前のテキストボックス

<textarea class="lmt__textarea lmt__source_textarea lmt__textarea_base_style" data-gramm_editor="false" tabindex="110" dl-test="translator-source-input" autocomplete="off" lang=""></textarea>

訳文ラベルクリック

<span class="translate_to">訳文 </span>

翻訳言語の選択

<button tabindex="99" dl-test="translator-lang-option-it-IT">イタリア語</button>

 

下記の1行追加したソースコードを実行してみてください。

window.scrollToは、スクロールバーを指定した位置に移動するメソッドです。

下記のエラーが表示されたと思います。下記のエラーは表示画面に訳文が見つからず、クリック出来なかったことによるエラーです。

 command
OpenQA.Selenium.ElementClickInterceptedException

なので、スクロールバーを上に戻してあげましょう。下記を追加してみてください。

処理がなおったと思います。

 

一つのアクション後に一定時間処理を空ける下記のやり方は

System.Threadingを追加し、

Thread.Sleep(1000)のように指定してください。1000は1秒間待つということです。

処理に画面表示が追い付いてない時などに使用すると良いです。

 

基本的にエラーでつまずいたときは画面に対象の属性が表示されないことがほとんどなので、

エラーでつまずいた時は下記の3つを試してみましょう。

ポイント

  • 画面を最大化する。
  • スクロールを合わせる。
  • 一つのアクション後に一定時間処理を空けてみる。

下記がソースコードです。

 

KappaChan
今回の記事は終了かっぱ!

自動化の関連記事はこちら

合わせて読みたいC# Linqを勉強するならこれだけは読んでほしいオススメの本3選 オススメの参考書

C#を勉強するためのオススメの本を紹介Contents1 C#を勉強するためのオススメの本を紹介1.1 C#の基礎を学ぶなら「やさしいC#」1.2 C#の全体像を学ぶなら「独習C#」1.3 C#をさら ...

続きを見る

-自動化

X