web-dev-qa-db-ja.com

LinuxプラットフォームのSeleniumにChromedriverを実装する方法

LinuxプラットフォームのSeleniumでChromeドライバを使用する方法を誰かに教えてもらえますか?

chromeドライバーの場所username/home/chromedriver

私のコードは:

System.setProperty("webdriver.chrome.driver", "/home/username/ChromeDriver/chrome‌​driver");
driver = new ChromeDriver();
driver.get("facebook.com");

私が得ているエラーは:

org.openqa.Selenium.WebDriverException:Chromeを起動または接続できません。 ChromeDriverが最新であることを確認してください。

Chromeバイナリを使用:/opt/google/chrome/google-chrome

(警告:サーバーはスタックトレース情報を提供しませんでした)

11
user2732362

[公式ドキュメント]( https://github.com/SeleniumHQ/Selenium/wiki/ChromeDriver から:

必要条件

ChromeDriverは、Chromeの自動化プロキシフレームワークを使用してブラウザを制御します。

サーバーは、各システムのデフォルトの場所にChromeがインストールされていることを前提としています。

OS          Expected Location of Chrome
-------------------------------------
Linux          /usr/bin/google-chrome
Mac            /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome
Windows XP     %HOMEPATH%\Local Settings\Application Data\Google\Chrome\Application\chrome.exe
Windows Vista  C:\Users\%USERNAME%\AppData\Local\Google\Chrome\Application\chrome.exe

Linuxシステムの場合、ChromeDriverは/usr/bin/google-chromeは、実際のChromeバイナリへのシンボリックリンクです。 Chromeバイナリの場所)の上書き のセクションも参照してください。

入門

セットアップするには、まず download が適切なビルド済みサーバーです。サーバーがPATHにあることを確認するか、webdriver.chrome.driverシステムプロパティ。最後に、新しいChromeDriverインスタンスを作成するだけです。

WebDriver driver = new ChromeDriver();
driver.get("http://www.google.com");

したがって、 必要なバージョンのchromedriverをダウンロード し、PATHのどこかに解凍し(または、システムプロパティでパスを指定して)、ドライバを実行します。

16
Petr Janeček

正常にインストールしました

Sudo apt-get install unzip
wget -N http://chromedriver.storage.googleapis.com/2.10/chromedriver_linux64.Zip -P ~/Downloads
unzip ~/Downloads/chromedriver_linux64.Zip -d ~/Downloads
chmod +x ~/Downloads/chromedriver
Sudo mv -f ~/Downloads/chromedriver /usr/local/share/chromedriver
Change the directory to /usr/bin/chromedriver
Sudo ln -s /usr/local/share/chromedriver /usr/local/bin/chromedriver
Sudo ln -s /usr/local/share/chromedriver /usr/bin/chromedriver

スクリプトを実行し、環境ファイルに以下を追加します。

Capybara.register_driver :chrome do |app| client = Selenium::WebDriver::Remote::Http::Default.new Capybara::Selenium::Driver.new(app, :browser => :chrome, :http_client => client) end

Capybara.javascript_driver = :chrome

注:32ビットや64ビットなどのオペレーティングシステムの種類に応じて、chromeドライバのバージョンを変更してください。

8
Kalyan Kumar

私にとってこれらのコマンドで作業しました:

  1. ファイルを解凍します-> unzip -q chromedriver_linux64.Zip
  2. ディレクトリ「usr/bin」にコピーを強制します-> Sudo mv -f chromedriver/usr/bin

Seleniumのコードはそのようなものでした。


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

WebDriver driver = new ChromeDriver();

driver.get("https://mvnrepository.com");

driver.close();
2

この例 から小さな例を見ることができます

Linuxの場合、chromeドライバーをダウンロードして、システムパス変数として保持します(または既存のパスフォルダーに配置します)。そしてコードから私は以下の方法を使用します(プロパティを追加し、chromeドライバーのパスで開始します)

System.setProperty("webdriver.chrome.driver", "/usr/local/bin/chromedriver");
ChromeDriverService service = new ChromeDriverService.Builder()
                .usingDriverExecutable(new File("/usr/local/bin/chromedriver"))
                .usingAnyFreePort()
                .build();
        try {
            service.start();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return new RemoteWebDriver(service.getUrl(), DesiredCapabilities.chrome());
0
Shantonu