【トラブル】Selenium に関するトラブルシューティング ~ 設定編 ~

■ はじめに

https://dk521123.hatenablog.com/entry/2015/05/12/230924

ででてきたトラブルシュートについて、まとめる

目次

【1】「org.openqa.selenium.WebDriverException: Cannot find firefox binary in PATH.」が表示される
【2】「java.lang.NoSuchFieldError: INSTANCE」が表示される
【3】「SessionNotFoundException: Unexpected error launching Internet Explorer.」が表示される

 【1】「org.openqa.selenium.WebDriverException: Cannot find firefox binary in PATH.」が表示される

https://dk521123.hatenablog.com/entry/2015/05/12/230924

の「JAVA / Firefox での設定」の「サンプル」を実行した際に、以下の「エラー内容」が表示された

 エラー内容

Exception in thread "main" org.openqa.selenium.WebDriverException: Cannot find firefox binary in PATH. Make sure firefox is installed. OS appears to be: WIN8_1
Build info: version: '2.45.0', revision: '32a636c', time: '2015-03-05 22:01:35'
System info: host: 'xxxxxx', ip: '192.168.238.1', os.name: 'Windows 8.1', os.arch: 'amd64', os.version: '6.3', java.version: '1.8.0'
Driver info: driver.version: FirefoxDriver
    at org.openqa.selenium.firefox.internal.Executable.<init>(Executable.java:72)
    at org.openqa.selenium.firefox.FirefoxBinary.<init>(FirefoxBinary.java:59)
    at org.openqa.selenium.firefox.FirefoxBinary.<init>(FirefoxBinary.java:55)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:95)
    at com.sample.selenium.SampleForFirefox.main(SampleForFirefox.java:9)

 原因

 * Firefox をインストールしていなかった

 解決策

 * Firefox をインストールする

 【2】「java.lang.NoSuchFieldError: INSTANCE」が表示される

https://dk521123.hatenablog.com/entry/2015/05/12/230924

の「JAVA / Firefox での設定」の「サンプル」を実行した際に、以下の「エラー内容」が表示された

 エラー内容

Exception in thread "main" java.lang.NoSuchFieldError: INSTANCE
    at org.apache.http.impl.io.DefaultHttpRequestWriterFactory.<init>(DefaultHttpRequestWriterFactory.java:52)
    at org.apache.http.impl.io.DefaultHttpRequestWriterFactory.<init>(DefaultHttpRequestWriterFactory.java:56)
    at org.apache.http.impl.io.DefaultHttpRequestWriterFactory.<clinit>(DefaultHttpRequestWriterFactory.java:46)
    at org.apache.http.impl.conn.ManagedHttpClientConnectionFactory.<init>(ManagedHttpClientConnectionFactory.java:72)
    at org.apache.http.impl.conn.ManagedHttpClientConnectionFactory.<init>(ManagedHttpClientConnectionFactory.java:84)
    at org.apache.http.impl.conn.ManagedHttpClientConnectionFactory.<clinit>(ManagedHttpClientConnectionFactory.java:59)
    at org.apache.http.impl.conn.PoolingHttpClientConnectionManager$InternalConnectionFactory.<init>(PoolingHttpClientConnectionManager.java:494)
    at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.<init>(PoolingHttpClientConnectionManager.java:149)
    at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.<init>(PoolingHttpClientConnectionManager.java:138)
    at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.<init>(PoolingHttpClientConnectionManager.java:114)
    at org.openqa.selenium.remote.internal.HttpClientFactory.getClientConnectionManager(HttpClientFactory.java:68)
    at org.openqa.selenium.remote.internal.HttpClientFactory.<init>(HttpClientFactory.java:55)
    at org.openqa.selenium.remote.internal.ApacheHttpClient$Factory.getDefaultHttpClientFactory(ApacheHttpClient.java:234)
    at org.openqa.selenium.remote.internal.ApacheHttpClient$Factory.<init>(ApacheHttpClient.java:211)
    at org.openqa.selenium.remote.HttpCommandExecutor.getDefaultClientFactory(HttpCommandExecutor.java:88)
    at org.openqa.selenium.remote.HttpCommandExecutor.<init>(HttpCommandExecutor.java:62)
    at org.openqa.selenium.remote.HttpCommandExecutor.<init>(HttpCommandExecutor.java:57)
    at org.openqa.selenium.firefox.internal.NewProfileExtensionConnection.start(NewProfileExtensionConnection.java:93)
    at org.openqa.selenium.firefox.FirefoxDriver.startClient(FirefoxDriver.java:246)
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:114)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:193)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:186)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:182)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:95)
    at com.sample.selenium.SampleForFirefox.main(SampleForFirefox.java:9)

 原因

 * Build Path でJAR が被っており、
   古いVersionのJARファイル(今回のケースでは「httpcore-4.0.jar」)を使用していたため

 解決策

【解決案1】
可能であれば...
 * Seleniumテスト用のプロジェクトを新規で起こしてSeleniumの関連しているJARのみをインポートする

【解決案2】
 * 古いVersionのJARファイル(今回のケースでは「httpcore-4.0.jar」)の優先順位を下げる

【解決案3】
 * 古いVersionのJARファイル(今回のケースでは「httpcore-4.0.jar」)のBuild Pathを削除

 【3】「SessionNotFoundException: Unexpected error launching Internet Explorer.」が表示される

https://dk521123.hatenablog.com/entry/2015/05/12/230924

の「JAVA / IE での設定」の「サンプル」を実行した際に、以下の「エラー内容」が表示された

 エラー内容

Exception in thread "main" org.openqa.selenium.remote.SessionNotFoundException: Unexpected error launching Internet Explorer. Browser zoom level was set to 250%. It should be set to 100% (WARNING: The server did not provide any stacktrace information)

 解決策

 * IEのZoomの設定を "250%" => "100%" にする

関連記事

Selenium ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2015/04/11/235336
Selenium WebDriver + Java ~ 初期設定編 ~
https://dk521123.hatenablog.com/entry/2015/05/12/230924