2

統合テストでは、セレンと、Chrome、Firefox、および IE 用のさまざまな (バージョンの) ドライバーを使用しています。ビルド サーバーには UI (または X) はありません。つまり、ヘッドレスです。仮想画面 (フレームバッファ) には Xvfb を使用しています。

X (UI) を持つローカル マシンで実行してもエラーは発生しません。

私は十分に簡単なテストクラスを持っています:

import java.io.IOException;
import java.net.URL;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;

public class Test {

    public static void main(String[] args) throws IOException, InterruptedException {
        WebDriver driver = new RemoteWebDriver(new URL("http://localhost:9515"), DesiredCapabilities.chrome());
        driver.get("http://www.google.com");
        Thread.sleep(2000);
        driver.quit();
    }

次に、ポート 9515 で chromedriver を起動します。例外は次のとおりです。

abc@xyz:~/test$ java -cp $CLASSPATH Test

(google-chrome:22323): Gtk-WARNING **: cannot open display: 
[0124/165659:ERROR:ipc_sync_channel.cc(378)] Canceling pending sends
chrome/test/automation/proxy_launcher.cc:107: Failure
Value of: app_launched
  Actual: 5
Expected: AUTOMATION_SUCCESS
Which is: 0
Error while awaiting automation ping from browser process
[0124/165659:ERROR:automation_proxy.cc(319)] Channel error in AutomationProxy.
[0124/165659:ERROR:ipc_sync_channel.cc(378)] Canceling pending sends
[0124/165659:ERROR:ipc_sync_channel.cc(378)] Canceling pending sends
Exception in thread "main" org.openqa.selenium.WebDriverException: Unable to either launch or connect to Chrome. Please check that ChromeDriver is up-to-date. Using Chrome binary at: /opt/google/chrome/google-chrome (WARNING: The server did not provide any stacktrace information); duration or timeout: 223 milliseconds
Build info: version: '2.9.0', revision: '14289', time: '2011-10-20 23:22:17'
System info: os.name: 'Linux', os.arch: 'amd64', os.version: '2.6.32-28-server', java.version: '1.6.0_26'
Driver info: driver.version: RemoteWebDriver
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:147)
    at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:113)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:417)
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:115)
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:76)
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:84)
    at Test.main(Test.java:63)

私は広範囲にグーグルで検索しており、さまざまなアプローチを試しました。これを 2 日以上解決しようとしてきたので、細部を見落としている可能性があります。

私は使用しています:

$ uname -a
Linux bryant 2.6.32-28-server #55-Ubuntu SMP Mon Jan 10 23:57:16 UTC 2011 x86_64 GNU/Linux

google-chrome-stable 24.0.1312.56-r177594 chromedriver_linux64_23.0.1240.0、chromedriver_linux64_26.0.1383.0

これに関するアイデアはありますか?

4

0 に答える 0