0

このトピックに関する投稿は大量にありますが、何らかの理由でChromeに関連するものはほとんど見つかりませんでした(最近、ヘッドレスのサポートが追加されたようです)。テストは、ブラウザを使用してローカルで実行されます。

  1. JavaからXvfbディスプレイをトリガーして、すべてを1か所で管理できるようにすることはできますか?私はむしろする必要はありません:

    Xvfb:1 -screen 0 1024x768x24&

コマンドライン経由。ディスプレイを実行してからシャットダウンすると便利です。

  1. プログラムでChromeDriverにSetEnvironmentPropertyを設定することが、私が解決策であることがわかったものです。

問題?Ubuntuマシンで動作させることができません。

私が受け取るエラーは次のとおりです。

/home/ubuntu/myproject/conf/chromedriver: 1: Syntax error: Unterminated quoted string

私が使用しているテストクラス:

import java.io.File;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeDriverService;

import play.Logger;
import utils.LocalInfo;

import com.google.common.collect.ImmutableMap;

public class TestCI {

    private WebDriver driver;

    @SuppressWarnings("deprecation")
    public TestCI(String url) {

        if (!LocalInfo.isEC2()) {

            Logger.info("Running tests by opening a browser...");

            System.setProperty("webdriver.chrome.driver", "conf/chromedriver");

            setWebDriver(new ChromeDriver());

        } else {

            Logger.info("Running tests headlessly...");

            String xPort = System.getProperty("Importal.xvfb.id", ":1");

            ChromeDriverService service = new ChromeDriverService.Builder()
                    .usingChromeDriverExecutable(new File("conf/chromedriver"))
                    .usingAnyFreePort()
                    .withEnvironment(ImmutableMap.of("DISPLAY", xPort)).build();

            setWebDriver(new ChromeDriver(service));

        }

        getWebDriver().get("http://www.google.com");

        try {
            someUITest();
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        getWebDriver().close();

    }

    public WebDriver getWebDriver() {
        return driver;
    }

    public void setWebDriver(ChromeDriver driver) {
        this.driver = driver;
    }

    public void someUITest() throws Exception {

        getWebDriver().findElement(By.name("q"));

    }

}
4

1 に答える 1

0

Linux用のchromedriverに切り替えたところ、引用符で囲まれていない文字列エラーhttp://code.google.com/p/chromedriver/downloads/listが解消されました

于 2013-02-20T14:03:14.140 に答える