自動化

C# Selenium SendKeyメソッドでテキストエリアなどの入力処理が遅い時の対処方法 SendKeyメソッドのタイムアウトもこれで解決!

このブログではAffinger5を使用しています。

ブログテーマが気に入った方はコチラをクリック

今回のテーマ

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

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

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

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

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

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

対策方法

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

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

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

こちらもCHECK

Microsoft Edgeを自動化してみよう1

このブログではAffinger5を使用しています。ブログテーマが気に入った方はコチラをクリック まえがき こんにちは、サルモリです! これからC#のSeleniumの使い方について解説していくのでよろ ...

続きを見る

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

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

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

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

引っかかりポイント1

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

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

引っかかりポイント2

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

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

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

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

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

まとめ

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

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

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

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

 

C#のLinqをさらに学びたい方へ

C#のLinqを理解して頂くために参考書を執筆致しました!

Linqの演習問題はこちらの参考書に載せているので、問題を解いて理解を深めたい方はこちらの参考書チェックしてください!

下記の画像をクリック!!kindleunlimitedの会員であれば無料で見れます!

⇩初心者向け      ⇩中級者向け

C#でChatGPTAPIを使ってブログ作成を自動化しませんか?

-自動化

Ads Blocker Image Powered by Code Help Pro

広告ブロックを検出しました。

ブラウザの広告機能を使用して広告をブロックしていることが検出されました。
ブラウザの広告ブロッカーを無効にし、「更新」をクリックしてください。

Powered By
Best Wordpress Adblock Detecting Plugin | CHP Adblock