副業で『資産サイトを作る方法』と『情報発信で稼ぐ仕組みを作る方法』についてお伝えしています。

>>月36万PVを稼ぐサイトのノウハウを手に入れませんか??

SeleniumによるChrome自動操作でTwitterにログインするサンプルコード

 
この記事を書いている人 - WRITER -
ご訪問ありがとうございます(^^)
副業でネットビジネスに取り組んでいるぱーくんと申します。

激務でも増えない給料に失望し、将来のために別の収入源が欲しい!の一心でネットビジネスをはじめ、2018年4月に20万円達成。

ひと月36万アクセスあるサイトを作ったノウハウは無料で公開中。 ⇒⇒コチラ
ネットビジネスで未来を夢見れる方を一人でも増やしたいと思っています。

誰でも最初は初心者。
【やってみたいけど、初心者だから不安】
という方は、ぜひお気軽にお問合せください♪
詳しいプロフィールはこちら

今回はブラウザを自動で操作して、Twitterにログインするアプリケーションを作ってみます。

前回はCOMを使いましたが、今回はSeleniumという仕組みを使います。

Seleniumを使うと、IE、Chrome、Firefoxなどのブラウザを自動で動かすことができます。

 

サンプルとして作るのは以下のようなアプリです。

  • アプリ起動するとログインIDとパスワードがあらかじめ入力されており、ボタンを押すと、自動でChrome(ブラウザ)が起動する。
  • 起動したブラウザにログインIDとパスワードが勝手に入力されてログインボタンも自動で押される。

 

プロジェクトとフォームの作成

Visual Studio 2019でプロジェクトを作り、フォームに以下のように2つのTextboxと1つのbuttonを配置します。

 

NuGetパッケージでselenium関連のライブラリをインストール

最初に、いくつかのライブラリのパッケージをプロジェクトで使えるようにインストールします。

「プロジェクト」⇒「NuGetパッケージの管理」を選択して、管理画面を開きます。

 

 

(「インストール済み」タブではなく)「参照」タブを選択して「selenium」で検索すると、関連するパッケージが表示されます。

この中で、以下のパッケージをインストールします。

  • Selenium.WebDriver
  • Selenium.Support
  • Selenium.WebDriver.ChromeDriver

 

 

これにより、以下のパッケージが使えるようになります。

 

では、さっそくコーディングしていきましょう。

 

ブラウザを自動起動する部分の記述

シンプルにChromeを起動して、Twitterのログイン画面に遷移するには以下のコードでOKです。

ChromeDriverをnewするだけでもいいんですが、ブラウザを見えないよう、ステルスモード(ヘッドレスモード)で起動したり、初期表示する位置を指定したりするのに便利なので、ChromeOptions というオプションを渡す形式のコードにしています。

 

 

NuGetパッケージをインストールして、上記のコードを書くだけで、自動でログイン画面をひらくアプリを作れるなんで、非常に簡単ですね。

 

要素の探し方と指定方法

さて、自動でログインさせるために、ユーザ名とパスワードの入力項目にどのような名前がついているのかを確認します。

確認して、後程、その要素名で特定して自動で入力させます。

 

Twitterのログイン画面(https://twitter.com/login)をChromeで開いた後、画面を右クリックします。

そこで「検証」を選択して、開発コンソールを開きます。(下記の図の右側です)

「電話、メールまたはユーザ名」と「パスワード」の部分の要素名を確認します。

それぞれ、session[username_or_email]とsession[password]となっていますね。

 

これをコードで取得するには、FindElementを使います。

以下のようにすると良いです。

 

要素を取得したら、そこに文字を入力します。SendKeysとすると、キーボードで入力したのと同じになります。

 

次に、ログインボタンを特定してみます。

ボタンの要素を見ると、タグやnameでは特定できそうにないですよね。。

 

なにか特徴がないか探してみると、「data-testid=”LoginForm_Login_Button”」というのがあります。

そこで、「data-testidという属性に”LoginForm_Login_Button”という文字列を含むdivタグ」という条件で取得することにしました。

 

これでログインボタンの要素を取得し、クリックさせることでログインすることができます。

 

要素がロードされるまで待機する方法

何度かテストすると分かると思いますが、ログイン画面が完全にロードされないうちに入力させたり、ボタンを押したりすると、要素が見つからないエラーになってしまいます。

そこで、ロードされるのを待つ必要があります。

 

そのための良い方法は「想定している要素が存在するかどうかを定期的にチェックして、なければ待機し、あれば、次の処理に移る」という方式です。

以下のようにすると、”session[username_or_email]”という要素が存在するまで、最大30秒待ちます。

 

ExpectedConditionsがdeprecated(非推奨)と表示される場合の対処法

上記の使っているExpectedConditionsは現在(2020年)では非推奨となっています。

代わりに以下のコード(ラムダ式)を使うと良いでしょう。

 

 

ひと手間でブログのアクセスが劇的に変わる

サイトのPVが伸び悩んでいる方必見
記事ネタにも悩まない秘密

是非あなたのブログにお役立てください。

今のうちにゲットしてください。

ここでは言えない
『キャンペーン特典』も付いています。

この記事を書いている人 - WRITER -
ご訪問ありがとうございます(^^)
副業でネットビジネスに取り組んでいるぱーくんと申します。

激務でも増えない給料に失望し、将来のために別の収入源が欲しい!の一心でネットビジネスをはじめ、2018年4月に20万円達成。

ひと月36万アクセスあるサイトを作ったノウハウは無料で公開中。 ⇒⇒コチラ
ネットビジネスで未来を夢見れる方を一人でも増やしたいと思っています。

誰でも最初は初心者。
【やってみたいけど、初心者だから不安】
という方は、ぜひお気軽にお問合せください♪
詳しいプロフィールはこちら

- Comments -

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Copyright© ぱーくん plus idea , 2020 All Rights Reserved.