Tag Archives: Firefox

Duplicate Tab

Firefoxを最近になってようやく3にバージョンアップしたのですが、評判通り、2より速度や快適さが増していますね。非常に快適に使えるのですが、人間便利になるとどんどんと横着になるのか、タブの履歴も含めた複製が標準ではできないのが(Operaだと標準でそういう機能があるそうで)、ちょっと不便に感じ始めたので、きっとどこかの奇特な方がそういうアドオンを作ってくれているに違いないと思い、検索したら一発で見つかりました。もしかして知らなかったのは私だけかなとか思いながら、まあ知らない人もいるだろうと思うので、一応メモっておきます。 Duplicate Tab これをインストールしたら更に便利になりました。もう本当にIEには戻れませんね。とかいいながらIE8はどれぐらいFFに追い付いて来ているのか少し気にはなっています。

Posted in インターネット | Tagged , , | Leave a comment

Google Browser Sync mess up my bookmark again

以前、Google Browser Syncは安心して使えないというようなことをエントリしましたが、また、同様の事態発生です。 自宅で使用しているデスクトップのFirefoxも最近使い始めたので、ブックマークの同期がやはり必要になってインストールしたところ、見事にまたブックマークが変になりました。原因はさっぱりわからず、ノートブックのFirefoxは、同期をとるとブラウザごとハングアップしてしまう有様。何度か修復を試みるも、うまく行かずあまりこんなことに時間をかけてもいられないので、もう使うのをやめようと思います。 で、何か代りになるものはないかなと探したら、 StartAidというサービスを見つけ、これを試してみることにしました。使用レポートはしばらくしてから書きたいと思います。

Posted in インターネット | Tagged , , , , , | Leave a comment

Google Browser Sync mess up bookmark

最近、契約先で使わせてもらっているPCと自分のPCとでブックマークを合わせたりするのが億劫になってきて、Google Browser Sync を試しに入れてみたのですが、どうもあまり具合がよろしくありません。Firefoxのブックマークの整理機能でフォルダを作ったりしてコピぺしたりしていたら、いくつか作成したフォルダがそっくり消えてしまいました。一応バックアップはとってあったので、大した被害でもないのですが、どうも一度に大量の編集を行うと同期を取る際にまずいことが発生しているのではないかと疑っています。しょぼしょぼ数個のブックマークを追加するだけだと正しく同期してくれるようです。あるいは、両方のマシンでFirefoxを開きっぱなしにしておくのがまずかったのかなとか、色々考えていますが、ググってもそれらしき情報は見つからないし、私だけでしょうかね、こんな現象に遭遇しているのは。その内、ちゃんと調べてみようと思いますが、自分で作成した方がいいか、ネット系のブックマークサービスの利用に切り替えるべきか悩む所です。そもそも、今のところ、納得のいく整理方法がないんですよねぇ。 とにかく、今のところ、残念ながらGoogle Browser Syncは自信を持って薦められません。

Posted in インターネット | Tagged , , , , | 1 Comment

Selenium – target=_blankのLinkへの対処方法

Seleniumを既存のWebサイトのテストへ適用しようとする場合に厄介なことの一つが、target=_blankでブラウザの別ウィンドウを開いてしまうようなリンクをテストしようとする場合があります。現バージョンでは、JavaScriptのOpenコマンドで指定するWindowIDがないとselectWindowコマンドが効かないため、新しく開かれたウィンドウを操作することができません。で、それの回避策として、target=_blankをやめてJavaScriptのopen()コマンドを使うように書き換えるという手が使えない場合の対処方法がOpenQAのフォーラム内の下記のスレッドにありました。 target=_blankのLinkへの対処方法 要は、JavaScriptを使って、現在のドキュメント内のtarget=_blankをtarget=’popup’みたいなウィンドウ名(タイトルではなくWindowID)で開くように動的に書き換えてあげてそれをやはりJavaScriptで新しいウィンドウをそのウィンドウ名で開いてから、目的のリンクをクリックすれば、そのウィンドウ内に開かれるので、先に付けた名前でそのウィンドウが選択可能になるというアイデアです。 SeleniumのHTML形式だと、概ね下記の手順がウィンドウを開いて目的のテストを実行してからウィンドウを閉じるという一連の処理となります。 storeEval javascript{“this.page().findElement(‘link=link on current page’).target=’popup'”} dummy storeEval javascript{“selenium.browserbot.getCurrentWindow().open(”, ‘popup’)”} dummy click link=link on current page selectWindow popup WaitorTitle title of popup page <<– ここに一連のテストが入る –>> storeEval javascript{“this.browserbot.getCurrentWindow().close()”} dummy storeEvalコマンドで指定している変数dummyはダミーの変数で後のコマンドでは使用しません。フォーラムのスレッドの途中で誰かが指摘しているようにウィンドウを閉じるのにはcloseコマンドだとちゃんと動かないことがあるようなので、上記のようにこれもJavaScriptのClose()を呼んでいます。 色々と試してみたのですがリンク先がスタティックなWebページだとこれでうまく動作するようですが、リンク先が更に動的コンテンツだったり、PDFを開いている場合にはうまく行きませんでした(先に開いた空白のウィンドウを無視してやはり別ウィンドウが開かれてしまう)。これは多分ブラウザがそのように処理しているのだと思うのですが、この辺にもtarget=_blankがなかなかなくせない理由の一つなのかも知れません。この辺の動きはIEでもFireFoxでもほぼ同じでした。 確か、selectWindowコマンドでタイトル名を指定しても動作するように次のバージョンではなるようなことも書いてあったので、それも試してみようと思いますが、一応上記回避策も使える場合はありがたいので、この問題に直面した方は試してみてください。

Posted in インターネット, コンピュータ, 技術 | Tagged , , , , , , | Leave a comment

Session Manager – Firefox Extension

Firefoxを2つオープンしていて片方に沢山のタブを開いていて、もう片方にはひとつのタブしかない状態で、沢山のタブの方を先に閉じてしまい、最後にひとつのタブしか開いていなかった方を閉じてしまうと最後の状態がひとつのタブになってしまい、せっかくオプションで最後に使用していたタブを表示するように設定していても、ほぼすべて失われてしまうことに今頃気付いて(それをやってしまった)、んーっ、これは不便、大体セッション状態を複数覚えさせることができればいいだけのことじゃないの、それぐらいならエクステンションに何か便利そうなのがあるだろうと思って検索したら、ありました、すごいいいのが。 Session Manager 他にもあるかも知れませんが、私はこれが一発で気に入りましたので、他は見ていません。複数セッション保存はもちろんできるし、細かな動作設定ができるので今のところジャストフィットという感じで、ありがたい限りです。私のようにこんな基本的なことに気付いていない方がいましたら、必需品ですので、ぜひお試しあれ。

Posted in インターネット, コンピュータ, 技術 | Tagged , , , | Leave a comment

Selenium RC ServerとNTLM認証 – FireFox編

昨日のエントリと同じ話題ですが、こちらはFireFoxの場合。テスト対象のURLがIISでホストされていて、NTLM認証を使用している場合、Selenium RCのJava Server(Proxy)で単にFireFoxを立ち上げてしまうとPromptというタイトルでユーザ名とパスワードの入力を求める認証ダイアログが出てしまいます。これは、SeleniumではJavaScriptを使用しているため、自動入力できませんし、先日紹介したUWSC等の他のツールを使っても簡単にはできなさそうです(これはもう少し根性入れれば可能かも知れませんが、単にWindows APIをたたくぐらいではどうもうまく行かないようです)。IEの場合は、先日のバグ修正を入れてやればIE自体が自動的にNTLM認証に対応してくれているので、OKだったのですが、FireFoxでは、それだけではこのPromptダイアログが出てしまい、うまく行きません。Seleniumサイドからいくら調べても解決策が見当たらず、諦めかけていたところで、はたと気が付きました。これは、Selenium特有ではなくて、FireFoxでIIS等Microsoft技術を組み合わせようとすると必ずぶち当たる問題のはずなので、Selenium抜きで、単にNTLM認証とFireFoxについて調べればいいのかと。そうしたら、あっさり見つかりました(笑)。 私の場合は、下記のBlogが最初のヒントでした。 http://www.crossedconnections.org/w/?p=89 要は、Firefoxのアドレスバーにabout:configと打ち込んで、network.automatic-ntlm-auth.trusted-urisというエントリを見つけて、そこにテスト対象のURIを入れてあげればいいわけです。 で、これをSelenium RCに応用するには、大体以下の要領で行けばいいわけです。 SeleniumのJava Serverで使用するデフォルトのFirefoxプロファイルを何らかの形で手に入れる(私の場合はビルド環境から入手)。 上記で得たプロファイルのフォルダにprefs.jsというファイルをコピーしてくるか、空のファイルで作成します。 prefs.jsの中に下記の行を追加します。http://hostnameの部分に対象となるURIを入力します。手で編集するのに自信がない場合や、この辺の詳細については、本家のhttp://kb.mozillazine.org/Editing_configurationを参照してください。 user_pref(“network.automatic-ntlm-auth.trusted-uris”, “http://hostname”); このプロファイルを適当なフォルダに置き、Selenium Serverの起動オプション -firefoxProfileTemplate に指定してあげます。 この要領で、私の場合はユーザ認証のダイアログが消せました。同様の現象にはまってしまった場合は、ぜひ試してください。

Posted in インターネット, コンピュータ, 技術 | Tagged , , , , , , , , | Leave a comment

SeleniumでXPath Locatorを使うとIEと相性悪そう

Selenium IDEとXPatherを使っているとついつい手軽にXPathが記述できるので、それを多用してテストを作成していたのですが、FireFoxで実行しているとサクサク動作してくれて、これはいいという感じなのが、IEで実行するとXPath Locatorが使われているところでやたらと遅くなります。CPU使用率もほとんど100%の状態になるし、ちゃんと確認していませんがどうもメモリーリークも発生しているようです。ひとつのブラウザセッションで連続してそういうコマンドを実行しているとどこかでおかしくなって、コマンドタイムアウト例外を投げて結果ファイルも残さずに異常終了してしまいます。 仕方がないので、いくつかにテストを分割してRCをテスト毎に起動することで回避しました。これってDOMに変更するしかないんですかね?

Posted in インターネット, 技術 | Tagged , , , , | Leave a comment

Seleniumでコメントを入れる方法

Selenium IDEでは、Commentを挿入できますが、これはHTMLの通常のコメントとして保存されるだけで、TestRunnerでテストを実行するときには、当然のことながら表示されません。XPathやDOMオブジェクトでテストターゲットを指定してしまうとテストを作成したときには、何をチェックしているか明白なつもりでも少し時間が経過してから見直すと一見しただけでは一体何をチェックしていたのかわからにくくなってしまうことはよくありそうです。 Seleniumのユーザフォーラムをチェックしていたら、やはりその話題とその解決案が下記に記されていました。 Comment command ちょっとスレッドが長いので要約・整理すると、 Selenium IDEではコメントを挿入すると通常のHTMLコメントとしてしか保存しない。読み込むときも通常のHTMLコメントをテストのコメントとして表示する。 TestRunnerでは、カラムが3つより少ない行は無視する。 これらの性質を利用して、TestRunnerを走らせるときにHTMLのコメントをカラムが1つだけの行に変換して挿入してやれば、テスト実行時や結果ファイルでもIDEで入れたコメントが表に出る。 ということで、下記のスクリプトをSelenium Coreのuser-extensions.js(現在使用していなければこの名前で保存)に追加してやれば、上記のようにIDEで入れたコメントがTestRunnerでも表示されるようになります。Selenium RCの場合は、コマンドラインの引数でユーザエクステンションファイルを指定してやれば、同様の結果を得られます。 フォーラムで指摘されていた修正も反映済みです。 user-extensions.zip

Posted in コンピュータ, 技術 | Tagged , , , | Leave a comment

Selenium と使うと便利なユーティリティ

またSeleniumの話ですが、前のエントリでも書いたとおり、TDDで使う分にはソース側を変えれば良いので特に問題にはならないのですが、既存のWebアプリに対してリグレッションテストを作成しようとすると今のバージョンでは、結構致命的になりかねない制限があります。 リファレンスに次のように書いてあります。 In some cases, Selenium will be unable to intercept a call to window.open (if the call occurs during or before the “onLoad” event, for example). 今私がテストを作成しているアプリケーションも結構古いもので、ページの切り替え時にJavascriptのAlertでポップアップウィンドウを出しているようなのですが、これのOKボタンを押すことが今のSeleniumだとどう転んでも出来ないのです。 でも、そこで手動操作を交えないといけないとなるとかなり魅力半減になってしまうのも事実で、少しの変更でバグが沢山出てしまうようなつくりの悪くなってしまったソースをリグレッションテストを通すために修正するというのも本末転倒のような話になってしまいかねません。 解決方法としては、Selenium RCを使用して.netプログラムにテストを変換して(テストの部分の変換はIDEがほぼ自動的にやってくれます)、Seleniumだけではどうしても手が出ない部分は、C#の力技で無理やり操作してしまうというのが一つの方法ですが、これだと開発者でない人にも何とかテストが作成できるというストーリーから離れていってしまうなあと考えあぐね、何か他の操作自動化するツールと組み合わせてできないかなと思って見つけたのがこれです。 UWSC これもブラウザ操作等ができるのですが、その辺はSeleniumの方がずっと出来がよいと思いますが、SeleniumがJavascriptベースのために対応できない部分を補完するのには、結構最適な感じ(通常のWindowsプログラムなのでJavascriptの部分でかち合うことはない)です。私の場合、何とかこのユーティリティを組み合わせることで、Seleniumで閉じれなかったポップアップを閉じれるようになり、ほぼテストを自動化することに成功しました。このツールはオープンソースではありませんが、無償で提供してくださっているので大変ありがたいです。WindowsのAPIやCOM呼び出しもできるので頑張ればかなり強力なツールだと思います。ちょっと困った問題が、UIが全部日本語なんですよね。こちらの人にこれを使えとはちょっと言えないので、何か同等のツールを探さないといけないかも知れません。WinBatchなんかも使えるのかも知れませんが有料ですし、何かいいツールをご存知の方はぜひ教えてください。 とりあえず、Seleniumでのテスト自動化をしようとして、JavascriptのアラートウィンドウをSeleniumで閉じれなくて使用を断念しそうな方は、大いに試す価値があると思います。

Posted in インターネット, コンピュータ, 技術 | Tagged , , , , | Leave a comment

XPather 1.3

先日書いたSeleniumにちょっとはまっていくうちに、やっぱりXPathを正確に生成してくれるツールは必須アイテムで、このXPather 1.3が非常に良いというので使用中。確かによく出来ていて使いやすいです。Firefoxエクステンションです。 XPather 1.3 こうしてネット系の作業をやればやるほどなぜFirefoxがシェアを伸ばしてきたのかがよく理解できますね。どんどんエクステンションをインストールしていくとIEには戻れなくなって行きますね。IE7.0でこれに似た機能はあるんでしょうか? 私のデスクトップでは、一応IE7.0にアップグレードしたんですけど、何かタブをどんどん開いていくと、10個も開かないうちに大体どこか適当なところでクラッシュして不安定でちょっと使えないんですよね。Firefoxも1.5より2.0の方が不安定になった感じはありますけど、IE7ほどではないし、セッション回復機能もあるのでクラッシュしても再起動で、一応クラッシュした時の状態には戻してくれるので、IE7よりはずっとマシです。そんなわけで、私のノートブックX32の方は、IE6のままにしてあります。Windows UpdateでしつこくIE7.0にアップグレードするように催促されるのが面倒でしょうがないのですが、これって何とかならんのですかね。Windows UpdateのサービスがCPU使用率100%になってしまう現象もWindows2000マシンで遭遇していますし、どうもX32の方もその現象が出つつあるのですが、面倒くさくてまだ調べてません。そろそろ、LinuxかMac OS XとかUnix系のOSに切り替えようかと真剣に考えてしまうこの頃です。

Posted in インターネット, コンピュータ | Tagged , , , | Leave a comment