自動化

【C# sharp】Selenium SendKeyでテキストエリアなどの入力処理が遅い時の対処方法

ChatGPTのAPIを使わずに自動化することが可能です。
下記の本を読めば、ChatGPT4でも料金掛からずに自動化できます!KindleUnlimited会員であれば無料で読めます。

今回のテーマ

こんにちは、サルモリです。

皆さん、Seleniumを使用して、Webの自動化を楽しんでいますでしょうか?

SeleniumのSendKeyメソッドを使用して、凄く長い文字列をテキストエリアに入力しようとした時、

「あまりにも時間かかりすぎてやってらんねぇ!!!」となったので、

今回はその対策方法を書いていきます!

サルモリ
今回はSendKeyメソッドの遅さに悩んでいる人向けの記事だよ!

対策方法

結論から言うと、SeleniumのExecuteScriptメソッドを使用して、javascriptで入力します。

C#の場合は下記のようなソースコードを書けばできます!!この例では、getElementByIdでidを取得して、そのタグに対して値を入力します。

この記事を読んでいる方はSeleniumが動く環境が整っていると思いますが、環境設定などは下記の記事に書いてあります。

こちらもCHECK

【2024年2月最新版】C#でMicrosoft Edgeを自動化してみよう

ChatGPTのAPIを使わずに自動化することが可能です。 下記の本を読めば、ChatGPT4でも料金掛からずに自動化できます!KindleUnlimited会員であれば無料で読めます。 まえがき こ ...

続きを見る

この方法を使用すれば、SendKeyメソッドを使用した時に比べて、1000倍は早くなりますよ!!

SeleniumのExecuteScriptメソッドで引っかかったポイント

上記のプログラムを書いたのはいいもののまだ引っかかるポイントがあったので、そのポイントも残しておきます。

javascriptの構文でエラーが発生していたので、情報が多いのが助かりました^^

引っかかりポイント1

入力したい文字列のシングルコーテションを対処する。

まずはシングルコーテーションに対して、「\'」としてエスケープしてあげましょう。

引っかかりポイント2

入力したい文字列の改行を対処する。

改行がある場合「\r\n」も対処しないとエラーが発生します。私の場合は\r\nを<br>に置き換えて対処しました。

対応例は下記のソースコードです。

上記のようにすることで私のやりたいことができました!!よかったよかった!!

サルモリ
やりたかったことができたね!!

まとめ

今回はSeleniumのSendKeyメソッドが遅すぎる時の対処方法を記述しました。

今回の例ではidのみですが、classやnameなどでの取得も勿論できます!

JavaScriptで調べれば沢山載っているので、落ち着いて対処してくださいね!!

この記事で皆さんのお役に立てていれば幸いです!それでは、また!!

 

-自動化

Ads Blocker Image Powered by Code Help Pro

Ads Blocker Detected!!!

We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.

Powered By
Best Wordpress Adblock Detecting Plugin | CHP Adblock