約 4,618,739 件
https://w.atwiki.jp/tenshin/pages/10.html
1.はじめに(「Selenium」とは?) 「Selenium」とは、オープンソースのWebアプリケーション用テストツールで、以下の特徴を持っています。 1.ブラウザ操作を自動化して、Webアプリケーションの試験・検証を効率的に行うことができます。 2.OS/ブラウザ互換をうたっており、OSはWindows、Linux、Macintosh、ブラウザはInternet Explorer、Firefox、Safariなどさまざまな環境において動作させることができます。 ※参考ページを元に引用、記載しています。詳しくは、参考、引用ページを見てください 2.参考、引用ページ URL http //codezine.jp/a/article.aspx?aid=436 3.Seleniumを利用する為の事前準備 ブラウザはFirefoxを使用します。インストールされていない場合は、下記URLよりインストールしてください。 3_1.Firefoxのダウンロード URL http //www.mozilla-japan.org/products/firefox/ 3_2.Firefoxのブラウザ設定 ※ここでの設定は、オフィスなどで使用している場合の設定です ①まず、Firefoxを開き、「ツール」→「オプション」をクリックします。 ②「詳細」→「ネットワーク」→「接続設定」を開く。 ③「自動プロキシ設定スクリプトURL」にチェックボタンを設定。 ④指定されたURLを入力。 ⑤OKボタンで設定完了。 ⑥Firefoxをもう一度立ち上げ、指定のサーバーにアクセスできたらOK。 3_3.IDEダウンロード URL http //www.openqa.org/selenium-ide/download.action Firefoxで画面を開き、IDEコントローラーをインストールしてください。 ※必ずFirefoxブラウザからインストールしてください。Firefoxからインストールしないと反映されません ダウンロードが終了したら、Firefoxを起動し、「ツール」の中に「Selenium IDE」があることを確認してください。 3_4.Seleniumダウンロード URL http //www.openqa.org/selenium-core/download.action ローカルにダウンロードしてください。 次へ 本日、訪問された方の人数は - 人です。 コメントがあれば、お願いします。 名前 コメント
https://w.atwiki.jp/api_programming/pages/228.html
下位ページ Content seleniumwebdriverページを取得する(開く) ウィンドウを閉じる 要素の取得idで classで tagで 要素を操作する要素をクリックする テキストを取得する テキストを入力する キー操作を入れる ヘッドレス化 2段階認証が必要な必要なサイトを何とかするとりあえず認証作業は手作業で行って、途中から自動にするWebDriverWait expected_conditions 要素が表示されたら発火 ログイン情報に cookie を使用するcookie 情報を書き出す cookie 情報を読み込む selenium JavaScriptも動かしてページを表示させているページだったので、ブラウザも一旦起動する方法をとった。その際に使った。 https //www.seleniumhq.org/ browser を動かせる状態にする ブラウザ上の要素を取得する 走査を加える 2,3を繰り返す webdriver ブラウザを開く(操作する?)ためのドライバーも準備(selenuimのぺーじからダウンロードした) 自動でパスが通る場所においていなかったので、バスを通す from selenium import webdriver url = "http //www.....com" # version 2.0 は webdriver付属、みたいに書いてあったのだが・・・ driver = webdriver.Firefox(executable_path="C /Users/.../geckodriver.exe") driver.get(url) print(driver.find_element_by_id("zansu6").text) driver.close() ページを取得する(開く) https //www.seleniumhq.org/docs/03_webdriver.jsp#fetching-a-page driver.get(url) ウィンドウを閉じる https //www.seleniumhq.org/docs/03_webdriver.jsp#fetching-a-page driver.close() 要素の取得 https //www.seleniumhq.org/docs/03_webdriver.jsp#locating-ui-elements-webelements http //www.seleniumqref.com/api/python/element_get/Python_find_element_by_tag_name.html https //kurozumi.github.io/selenium-python/locating-elements.html# 要素の取得には2種類ある。 driver.find_element_... driver.find_elements_... elementは最初に出会った要素を取得している。 一方、elementsは出会ったすべての要素を取得している。なので、forでまわしたりして使う。(一度にすべての要素になにか操作を加えることは出来るんだろうか?) なお、elementsでタグを取得すると、子要素だけでなく、孫・ひ孫、、、まで取得している模様。 idで classで cheeses = driver.find_elements_by_class_name("cheese") tagで 要素を操作する 取得した要素を element とする。 要素をクリックする element.click() テキストを取得する element.text textプロパティで取得できる。このとき、タグは含んでいない。 Getting text values - Selenium テキストを入力する https //www.seleniumhq.org/docs/03_webdriver.jsp#user-input-filling-in-forms element.send_keys(string) キー操作を入れる from selenium.webdriver.common.keys import Keys element.send_keys(Keys.ENTER) https //kurozumi.github.io/selenium-python/api.html#module-selenium.webdriver.common.keys ヘッドレス化 データを取得するだけなら、ウィンドウを開く必要はない。「ヘッドレスブラウザ」は画面を表示しないブラウザ。 Chrome や Firefox はヘッドレスブラウザとして動かすことができる。 Firefoxの場合 from selenium.webdriver.firefox.options import Options # selenium と geckodriver を つかって、firefox を開く(ヘッドレス) options = Options() options.add_argument("--headless") driver = webdriver.Firefox(executable_path="/PathOfFirefox/geckodriver.exe", \ firefox_options=options) 2段階認証が必要な必要なサイトを何とかする やりたかったこと自分があるサイトに構築している、複数ページに渡るリストを取得すること 現状リスト取得に対してはAPIが公開されていない。 リストは単純な追加作業ばかりでなく、途中で部分的に削除することもある しかしながら、そのサイトは「独自のアカウント」がないgoogleだったりYahooだったりDocomoだったりのアカウントを使っての登録が必須 自分が使っているgoogleのアカウントで入ろうとすると、スマホ端末での認証が必要となり、ウェブの範囲を超えている。 思いつく、「ステップ」としては次くらいか? とりあえず認証を手作業でやる 一度認証できたら、cookieなどで記憶させて次回以降のログインを飛ばす (最初から自動ログインにする←2ができていたら、多分、この作業はあまり意味がない) とりあえず認証作業は手作業で行って、途中から自動にする 作業の途中からseleniumに任せる方法がわからなかったので、最初はログインの認証画面に遷移されたタイミングで import time time.sleep(60) sleepメソッドで止めようとしたが、「確立された接続が。。。。」というエラーメッセージで止まってしまう。さらに言えば、selenium IDEで作業を追ってみても、「次へ」ボタンがうまく特定できない。この辺は実力の無さか? WebDriverWait WebDriverWaitで作業を止めて、作業ができる状態になったら、再スタートするようにした。 from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC ... wait = WebDriverWait(driver,120) wait.until(EC.title_contains("リスト")) 流れは ログインができるページに飛ぶ(自動) google認証のページに飛ぶ(手動) googleのアカウント名を入力→確認ボタン(手動) googleのアカウントのパスワードを入力→確認ボタン(手動) スマホで2段階認証(当然手動) リダイレクト トップページ→目的のページへのリンククリック(手動) 目的にページが開かれたら、発火(ここから自動化) 認証を済ませる。そのあと、リストのあるページに行く。 まだまだ自動化できる部分もあるが、エラーもぼちぼち出て、面倒になって、この方法に。 wait.until(value) value が真になったら発火させる 何で発火させるかは、expected_conditions を使って指定している。 本来の使い方は、動的に表示データを生成するようなページに向けての模様。 使い方の分類としては明示的な待機になるのか?「何を待つか」に関して、準備されているものもあれば、独自に作ることもできるらしい。 参考サイト 5. Waits - Selenium with Python https //kurozumi.github.io/selenium-python/waits.html https //titirobo-develop.hatenablog.jp/entry/2018/03/19/202207 expected_conditions 要素が表示されたら発火 要素の表示で使い場合は、 EC.presence_of_element_located https //selenium-python.readthedocs.io/api.html#selenium.webdriver.support.expected_conditions.presence_of_element_located selenium.webdriver.common.by ログイン情報に cookie を使用する 普段はログイン作業を通らずにリストが表示される、ということは、クッキーにセッション情報か何かが残っているわけで、一度ログインをすればクッキーが使えるはず。 ※最初からログインした状態のブラウザから読み出した cookie 情報でログインすればよかったのだが、後述のミスで、cookie 情報の読み込みができなかった。。。 cookie 情報を書き出す driver.get_cookies() 複数クッキーがあるかもしれないので、読み出した後 for か何かで回したものを print すればOK .get_cookies() - selenium driver.get_cookie(name) もあるが、nameがわからないと呼び出せないので、上が良い? cookie 情報を読み込む driver.add_cookie(cookie) cookie の情報としては、dict 型で記述した cookie を準備しておいて、読み込ませる。 読み込ませる(書き込む)タイミングは、関連付けるドメインで get した後。まだ開いていない状態で add_cookie をすると Document is cookie-abverse とエラーが出て止まってしまう。 .add_cookie(dict)
https://w.atwiki.jp/unispe/pages/36.html
オープンソースのテストツール。人力での動作確認では手間も時間も非常にかかるところを、Seleniumが人間に代わって「早く、正確に、同じ手順で」テストを実行してくれます。 ※「Selenium」という単語自体は、自動テストツールのプロジェクトの名前です。 Seleniumプロジェクトで開発されているテストツールには、いくつかの種類があります。 Selenium-IDE Firefox のアドオンとして、配布されています。Web アプリケーションに対するユーザ操作を記録し、Selenium テストとして保存・再生します。FireFox上の操作を録画し、テストケースとして保存する機能があります。執筆当時の最新バージョンは1.10.0です。適宜最新のアドオンをダウンロードし、そのままFireFoxへインストールしてください。 Selenium-RC サーバ・クライアント型のテスト実行ツール。複数のブラウザと複数のプログラミング言語に対応し、ページに JavaScript を埋め込むことで動作します。 Selenium-Grid 複数の環境で同時にテストを実行できるツール。テストは Selenium-RC にリダイレクトされて実行されます。 Selenium WebDriver サーバ・クライアント型のテスト実行ツール。複数のブラウザと複数のプログラミング言語に対応し、各ブラウザの提供する機能を呼び出して自動操作を実現します。 Seleniumには大きく分けて2種類の実施方法があります。 ①.ブラウザのプラグインとしてブラウザを操作する方法 ②.プログラムにSeleniumのライブラリを取り込んでプログラムからSeleniumを操作する方法 ①の難易度については難しくはないですが、自動操作の限界はブラウザの仕様に依存する為、拡張性はほぼ無しです。 ②の難易度については難しく、プログラミング知識(対応言語:Java、C#、Ruby、Python、JavaScript(node))及びSeleniumAPIの知識が必要になりますが、使いこなすことが出来ればブラウザの仕様を自分で定義することが出来る為、拡張性は高いです。 ※公式ページ(http //www.seleniumhq.org/) サンプル集 ブラウザ起動 Proxy設定 HTMLParser
https://w.atwiki.jp/goemode/pages/17.html
Selenium IDE seleniumマクロやキャプチャー取得 IEでキャプチャー取得 Selenium IDE https //addons.mozilla.org/ja/firefox/addon/2079 seleniumマクロやキャプチャー取得 http //codezine.jp/article/detail/2345?p=1 IEでキャプチャー取得 http //app.f.m-cocolog.jp/t/typecast/1105329/1127594/46941320
https://w.atwiki.jp/taichik15/pages/19.html
Selenium firefoxのprofileを指定して立ち上げる リファレンス ソース
https://w.atwiki.jp/tenshin/pages/14.html
Seleniumメモ(こんな問題があった・・・) Q1.input type が「file」になっている所は、IEで実行できない。 A. 現段階ではIEで実行できません。(仕様)※Seleniumのバージョンアップに期待。。。 Q2.input[@name= ]の場合、ボタンを認識しない事がある。 A. input[@name= ]をvalueの値などにし、input[@value= ボタン名 ]などにするといいです。 Q3.途中でタイムアウトになる。動かなくなる。pauseコマンドを入れるタイミングが分からない。 A. pauseコマンドは、frame、click、typeコマンドの後に入れて実行したほうが好ましいです。 Q4.IDEで実行しているのに、何も起こらない。 A. FireFoxのブラウザが無いと実行できません。ブラウザを開いてください。
https://w.atwiki.jp/ohden/pages/505.html
Selenium Server CentOS 6.4 amd64 Selenium Server (formerly the Selenium RC Server) 2.33.0 Client Windows XP Selenium IDE 2.0.0 Started InternetExplorerDriver server (32-bit) 2.33.0.0 Started ChromeDriver (v2.0) on port 9515 Selenium http //docs.seleniumhq.org/download/ http //code.google.com/p/selenium/ r.f.) たくさんあるSeleniumの違いについて丁寧に解説 http //blog.trident-qa.com/2013/05/so-many-seleniums/ Selenium Serverの導入と使い方について解説 http //d.hatena.ne.jp/pospome/20130703/1372815216 Seleniumを使ったテストについて解説 http //iflaglabs.jp/original7.html WebDriverを用いたテストについて解説 http //d.hatena.ne.jp/suzukij/20110828/1314549996 使えそうなSelenium関係の記事があるblog http //d.hatena.ne.jp/fz6/20130327/1364372277 Selenium IDE Firefox plug-in。テストケースの作成を行う。firefoxだけだが、単体で自動テストも可能。 Selenium Server Javaアプリケーション。Selenium IDEと連携して動作する。Selenium IDEで作成したテストケースを実行するアプリケーション。 WebDriverを使うことにより、IEやOpera、chromeなどにも対応する。 SeleniumでPHPテストの自動化 SeleniumでJavaScriptテストの自動化 更新日: 2013年07月08日 (月) 10時26分17秒 名前 コメント すべてのコメントを見る
https://w.atwiki.jp/honeybe/pages/51.html
Selenium Record SeleniumIDEを使ってね。 xxx verifyTextPresent 指定された文字が存在する verifyTextNotPresent 指定されて文字が存在しない リンク押下 clickAndWait //a[contains(@href, url )] リファレンス http //wiki.openqa.org/display/SEL/Selenium+0.7+Reference+(Japanese)
https://w.atwiki.jp/bill_kaigh/pages/25.html
WebのUIテストを自動化できるツール WebAPの開発以外にもWebブラウザの自動操作ができるので様々な場面で使える。 SeleniumHQ http //docs.seleniumhq.org/ 2009年6月20日 バージョン1.0リリース 2011年7月8日 バージョン2.0リリース OSDN Magazine - Webテスト自動化フレームワーク「Selenium 2.0」リリース、Google発のテストツール「WebDriver」を搭載 その後マイナーバージョンアップが頻繁に行われていて 2015年9月の段階では 2015年7月29日にリリースされた 2.47 が最新。 バージョン2.0で構成が大きく変わっているのでそれ以前の記事はあまり役に立たない 構成 WebDriver Selenium IDE Selenium Remote Control(RC) Selenium Grid インストール 何をインストールしたら良いか
https://w.atwiki.jp/deadlink/pages/16.html
タブ制御 ツリー型タブ タブを縦列にし、ツリー状に表示します。 これが出来るのはFirefoxだけ。 Tab Mix Plus タブ機能の拡張アドオン。 ロック、保護、まとめて閉じる、復元、セッションの保存、ブックマークを新しいタブで...etc Tab Mix Lite Tab Mix Plusの機能を抑えてメモリ消費を減らした版。 主要な機能は揃ってるので、これでいいんじゃないかな。 機能追加 TabCinema YouTubeなどの動画をボタン一つで 現在のウィンドウサイズいっぱいまで広げて鑑賞することができるようになる。 Add Bookmark Here ² ブックマークフォルダの最上部に「ここにブックマークを追加」という メニューアイテムを表示する。 Restartless Restart メニューに再起動を追加。ショートカットキーもあり。 バカ食いしたメモリのリセットに。 操作拡張 QuickDrag リンクのドラッグで別タブ表示、画像ドラッグで保存、文字列ドラッグで検索。 これは必須でしょう。 Copy Fixer 何も選択されていない状態で Ctrl+C を押すと、ページタイトルとURLをコピー。 Cutyfox URL Shortener ページタイトルとURLをクリップボードに保存。自動でURLを簡素化する。 サービス Pocket Pocketへの一発登録と、登録済みサイトの一覧のボタンが追加される。 Firefox38から標準機能に統合されたが、アドオンを入れていればそっちが優先される。 セキュリティ/プライバシー Search Scrub Firefox検索バーに入力した値を自動で消す。Enterキーで検索開始した直後に消える。 uBlock 広告フィルタ。AdBlock Plusより断然軽い。 機能面でもネガティブな面は感じない。いいと思う。 Flashblock フラッシュを表示させなくする。目障りな広告などが結構消せる。 普段使うサイトは右クリックから簡単に例外に追加できる。 Image Block 画像の表示を一時的に無効化できる。 FoxFilter 特定のキーワードでウェブアクセスを制限できる。 フィルタ対象はURLかBODY。 ダウンロード関係 DownThemAll! 一括ダウンロードには欠かせない。ダウンロードの中断、再開も強力。 Image Picker タブ上のウェブページからフィルタ設定に基づいて画像を抽出、ダウンロードできる。 DownThemAllのようにURLにフィルタを掛けることはできないが、 画像サイズの下限を設定できる上、ダウンロードする前にサムネイルでチェックが出来る。 開発用 Selenium IDE Webアプリのテストケースを作成できる。 いわゆるブラウザ操作の自動化なので、マクロ的な使い方もできる。 Firebug Webアプリ開発支援ツール。 標準のデベロッパツールと機能はあまり変わらないので好みの問題。 Dafizilla Table2Clipboard ページ上の表で選択した行や列を、配置を保ったままクリップボードにコピーできるようにする。 地味に便利。 その他 eQuake Alert++ 地震警報受信アドオンeQuake Alertの改良版。 日本語表記に対応。日本のマップが追加されている他、作成/保存も可能に。