それでは､ セレンでできる面白いことを始めてみましょう｡
さて､ 今回の実習で使うのは､ このSeleniumというウェブサイト､ Etsyです｡ com､ 特にスラッシュテストの部分です｡
このウェブサイトは､ 私たちがウェブサイトで遊ぶための素晴らしいテストの場を提供してくれるからです｡
例えば､ ここで入力フォームをやって､ 簡単なフォームのデモをやるとします｡
実際にこのサイトを使って､ メッセージを表示しながらいろいろと入力して､ コードだけでできるかどうか試してみることができますね｡
そこでまず､ このURLをコピーします｡
そして､ 今回は入力フォームとシンプルなフォームのデモを選びます｡
その後､ 自分でいろいろと試してみるのもよいでしょう｡
しかし､ これはフォーム入力､ テーブル､ アラート､ モデルなど､ ほとんどのウェブサイトの機能を模倣しようとするもので､ コードを実にうまくテストすることができるのです｡
では､ このURLをコピーして､ まずは､ まあ､ 私たちはオートメーションテスターですから｡
もう手書きで入力することはないんです｡
それをSeleniumにやらせたのです｡
そこで､ まず最初に､ 「おい､ Chromeブラウザ､ このURLを取得してくれ」と言います｡
私の場合は､ ちょっと､ このURLをコピーして貼り付けただけということです｡
Chromeブラウザー､ それを買ってきてくれ｡
では､ そのコードを実行してみましょう｡
そして､ それを確認する｡
seleniumでブラウザを開くと､ 指定したURLに飛びました｡
ですから､ ほとんどの場合､ これは特定のURLに移動する最初の行になります｡
今度はウィンドウを最大化させたい｡
そこでもう一度､ Chromeブラウザと言い､ マキシマイズと言うことにします｡
ウィンドウなので､ 今回は本格的なウィンドウを用意しました｡
さて､ このコードを実行するたびに新しいウィンドウが開くので､ もう一度これを閉じます｡
では､ ひとまず終了としましょう｡
さて､ 次にやりたいことは､ このページが正しいかどうかを確認することです｡
さて､ Seleniumが動作する方法は､ このページを見て､ 要素を取得したり､ このページの要素を見つけようとするもので､
これを行うには､ このページが構築されているHTMLを使用します｡
さて､ HTMLは簡単に言うと､ ページ内の何かを右クリックして､ 「検査」をクリックすると､ そのページが表示されます｡
開発者コンソールが表示され､ ここにある「要素」タブで､ 実際にページがHTMLを使ってどのように構成されているかが表示されます｡
HTMLは､ Webページをブラウザで表示するためのもので､ 各要素の情報を単純に記述したものです｡
私たちの場合は､ 「完全な自動テストチュートリアル」と書いてあるのをご覧ください｡
HTMLは､ 「おい､ ここにこの文章を書いてくれ」と言う｡
そうすると､ 名前とスローガンに行くとか､ これを開いてみようとか｡
ここでは､ セレンが簡単に作れることがわかりました｡
画像はこちらです｡
基本的にHTMLは､ ウェブサイト上にいくつかのテキストといくつかの基本的なコンテンツを表示することができます｡
だから､ セレンで､ つかむことができるのです｡
これらの要素をチェックし､ 修正し､ 私たちが望むことを行います｡
ずっと上に行って､ これをお見せしましょう｡
HTMLの各ページには､ 必ずタイトルタグがあります｡
そして､ タイトルとは､ 簡単に言えば､ この上部に表示されるものです｡
私たちの場合は､ Selenium Easy Demoと書かれています｡
そこで､ 私ができることは､ 実際にこれをコピーすることです｡
そして､ このコードの中に selenium easy demo という文字列があるとします｡
それはクロームブラウザのドットタイトルでの話でしょうか？
では､ ここにプリントして見てみましょう｡
このコードを実行してみる｡
ブラウザが立ち上がる｡
そして､ コードに戻ると､ そのテキストがタイトルにあるため､ trueを得ることができます｡
Python Easyのデモのようなことをすると｡
そして､ これを実行します｡
虚偽をつくのが目に見えている｡
これで､ 私たちのコードを簡単にチェックすることができるようになりました｡
printを常時実行するだけでは､ Pythonに付属するassertキーワードを使用することになります｡
なぜなら､ ここで起こることは､ 何かをアサーションしたとき､ もしこれがfalseを返したら､
実際にエラーになり､ コードから抜けるからです｡
だから､ これを実行すると
エラーが出るのがわかると思います｡
アサーションエラーで
だから､ これは何かが存在するかどうかをテストするための良い方法なのです｡
しかし､ 以前のようにSelenium Easy demoに戻りましょう｡
これで､ エラーにならずに真が得られるはずです｡
さて､ もうひとつ､ ここにはたくさんのウィンドウがあると思いますので､ それらを閉じてしまいましょう｡
また､ 実際にこれらを閉じる方法については､ 後ほどご紹介しますのでご安心ください｡
そこで､ ここからタイトルを抽出する方法を紹介しました｡
もうひとつ､ 私ができることは､ ちょっと言ってみましょう｡
私のHTMLにはheadタグとbodyタグがあります｡
そこで､ ここでHey assertのようなことができないか｡
本体｡
ここで実行をクリックすると
うーん｡
ボディをつかむことができないようです｡
では､ ここで何ができるのか？
さて､ このようなページと対話するもう一つの方法は､ セレクタを使うことです｡
セレクタは､ ページ内のアイテムを取得するための簡単な方法です｡
IDによる項目､ クラスによる名前､ タグによる名前､ リンクテキストによる名前を取得することができます｡
できることは山ほどあるんです｡
では､ どのように見えるか､ こちらでご紹介しましょう｡
ここのHTMLページ､ エレメントを見ると､ 例えばこの場合､ 掴みたいものがあるのがわかりますね｡
このボタンをつかみたいのです｡
右クリックで「検査」をクリックすればいいんです｡
そして､ このボタンにはタイプ､ クラス､ テキスト（show message）が設定されています｡
チートシートに行くと､ ここに､ さまざまなものをつかむことができるとありますね｡
異なる選択肢
CCSでやればいいんです｡
リンク税でできる
タグ名でできる｡
クラス名でできる
そして､ ここにdriver find element by class nameと書かれているのがわかりますね｡
だから､ こうやって選ぶことができるんです｡
では､ そうしましょう｡
これをコピー＆ペーストして､ 簡単に言うと､ Hey, Chrome browser, I want you to find element by class
name.
そして､ 使用したクラス名は？
さて､ 今回の場合､ クラス名はというと｡
債券のデフォルト｡
だから､ BTNと言うことになる｡
デフォルト｡
そして､ これが私たちのボタンになるのです｡
だから､ これを実行して､ 単にこのようにボタンをプリントするだけなら､ 私のコードを実行すれば｡
ここで､ Selenium Web ドライバから Web 要素を取得できていることがわかります｡
しかも､ 素子のようです｡
何が起こっているのかよくわからないのですが､ 何か､ ボタンをつかんでいるのです｡
さて､ 今回手に入れたこのボタン要素は､ まさにここにあるようなものです｡
もう一度要素を検査すると､ この部分をキャプチャしています｡
このセレンには､ 私たちが使用するためのこのボタンが含まれています｡
そして､ ショートカットとして､ こちらにはイコール・イコール・ドル記号ゼロと書いてありますね｡
これにより､ 実際にこの要素を選択し､ コンソールと呼ばれるもので使用することができます｡
ですから､ コンソールをクリアして､ ドルゼロとだけ言えば､ これが取り込んだ要素であることがわかります｡
さて､ ここでは､ さまざまな方法で対話することができます｡
そのひとつがGetのような言い方をすることです｡
属性です｡
そして､ inner HTMLという属性｡
さて､ HTMLでは､ このHTMLの内側にあるもの､ つまりボタンを取得するだけです｡
そして､ こちらではボタンが閉じているのがわかると思います｡
そこで､ ショーメッセージを取り出したい｡
こんな感じで､ 仮にこのボタンテキストを呼び出して､ ボタンテキストを印刷するとします｡
これを実行すると
ああ､ 実際にエラーが出ますね｡ ここで構文が間違っていることがわかりますから｡
饅頭のテキストを印刷しようとしたら､ 属性が表示された｡
そこで､ かっこをこのように動かして､ もう一度コードを実行してみてください｡
これでよしとしよう｡
こちらには､ ショーメッセージがありますね｡
そこで､ コードを通して､ ページを検査することができたのです｡
この場合､ 自分が何を制御したいのかを確認する｡
たぶんこのボタンで､ get属性メソッドでテキストを取得できたんだと思います｡
繰り返しになりますが､ これらの方法はすべて私がリンクしています｡
どれも､ オートメーションに慣れるしかないものばかりです｡
しかし､ 基本的なHTMLを理解していれば､ とても簡単に理解できるものです｡
実はあまりないんですよ｡
本当に使えるメソッドは､ 20個くらいはあると思います｡
でもね
今はまだ､ それほどエキサイティングなことではありません｡
つまり､ ええ､ もちろんです｡
ブラウザを立ち上げました｡
私たちはよく､ ボタンを見て､ それが示すテキストを表示するようになった｡
でも､ 実際にブラウザ上で行うようなことを真似してみたいんです｡
例えば､ こんな入力があったとします｡
そして､ このページを何らかのテキストを入力するページに変更したいのです｡
メッセージの表示をクリックすると､ まるでウェブサイトにサインインするか､ Redditにアップロードするかのように､ そのまま表示されます｡
次のビデオでそれを自動化しましょう｡