技術・プログラミング]前回の記事「Selenium3のインストールとEclipseへのセットアップ(Javaからブラウザを自動で操作する)」で、Selenium3の概要と自動化を実現する仕組みの概要、Eclipseプロジェクトの設定方法まで解説しました。今回は、特にFirefoxの自動化のJavaコードを解説します。アドオンエラーが出る場合Firefoxの自動化のJavaコード早速ですが、JavaでFirefoxを自動で起動し、あるサイトにアクセスするには、以下のようにします。“C:\\selenium\\driver\\geckodriver-v0.16.0-win64\\geckodriver.exe”;この行では前回の記事でもダウンロードしたFirefox用のWebDriverのexeへのパスを設定しています。後程、このパスを使って、FirefoxWebDriverを起動します。Firefoxdriverpath);Javaの場合、システムプロパティに「webdriver.gecko.driver」というキーでFirefoxWebDriverへのパスを設定することで、WebDriverを起動することができます。true);直前でインスタンス化したDesiredCapabilitiesに設定を行うことで、firefox自動実行時の振る舞いを変えることができます。このコードは「marionette」を有効化しています。最近のFirefoxでは、marionetteという自動化の仕組みを積極的に開発していて、それを使った比較的新しい方法でSeleniumから操作するか、以前の仕組みで操作するかをこの設定で指定できます。trueを渡すとそれが有効になります。FirefoxDriver(capabilities);設定したDesiredCapabilitiesでWebDriverを起動します。後は、「driver.get(“http://www.yahoo.co.jp”);」のように、インスタンス化したdriverに対して自動操作を行っていくことが多いでしょう。エラーが起きる場合の対処法ブラウザは、頻繁にアップグレードが行われていますので、自動実行時にもエラーが出やすいです。ここでは、いくつかのエラーとその対処法についてメモしておきます。ブラウザのバージョンとWebDriverなどのバージョンは合っているかWebDriver、言語バインディングは、サポートするFirefoxのバージョンがあります。このバージョンがあっていないと思わぬエラーを引き起こしやすいです。Firefoxen」セクション等にサポートするFirefoxのバージョンが書いてあったりするので、確認してみましょう。OSとブラウザのBit数は合っているかネイティブのAPIを呼び出している関数を使っている場合にエラーが出てしまう場合は、OSのbit数とFirefoxのbit数があっているかどうかも確認してみるといいかもしれません。OSは64bitのWindowsなのに、インストールしているFirefoxは32bit版だったりすると、エラーが出る場合があります。私がはまったのが、以下のようなアドオンのエラーでした。[nsIFile.create]どうも、自動起動時にプロファイルを新規作成して、アドオンを読み込もうとするようですが、プロファイルが作れなくて、エラーが出れいるようです。そのため、上記のJavaコードのように、FirefoxProfileにデフォルトのプロファイルのパスを渡してあげるとエラーが出なくなりました。Firefoxのプロファイルは通常、ユーザのディレクトリの「AppData\\Roaming\\Mozilla\\Firefox\\Profiles」配下に置かれますので、そこにあるプロファイルへのパスを設定すればOKでした。自動化こんな記事も読まれていますコメントを残す返信をキャンセルする。Reserved.このページの先頭へ。