0

Chrome ブラウザーでセレン テスト ケースを実行しようとしています。この前に、Chrome ブラウザのファイルのデフォルトのダウンロード場所を f:/xyz に設定しました。

リンクをクリックしてファイルをダウンロードするセレンスクリプトが実行されると、以前に設定したf:/xyzではなく、クロムのデフォルトの場所(c:/documents and settings/downloads)にダウンロードされます

これを修正するには?

4

2 に答える 2

1

その時点ではできません。http://code.google.com/p/selenium/wiki/ChromeDriverの公式 ChromeDriver Wiki から:

既知の問題 ChromeDriver にはいくつかの既知の問題があり、以下にリストされています。

  1. 設定された Cookie の名前と値のみを取得できます (ドメイン、パスなどはありません)。
  2. リッチテキストが有効なドキュメントでは、入力は機能しません。
  3. カスタム プロファイルを指定できません
  4. HTML 5 API が実装されていません
于 2013-01-01T03:30:20.490 に答える
1

おそらく、ここでの問題は、ダウンロード場所が特定のユーザー プロファイルに関連付けられていることです。Chrome ドライバーは、デフォルトで Firefox ドライバーと同じパターンに従っており、ダウンロードのたびに完全にクリーンなユーザー プロファイルのコピーを使用します。が実行されるため、ユーザーに設定したダウンロード場所が Selenium によって取得されることはありません。Firefox での解決策は、カスタム Firefox プロファイルを作成し、Selenium にそれを実行するように指示することです。Chrome ドライバーにも同様の機能があるに違いありません。

ドキュメントによると:

DesiredCapabilities capabilities = DesiredCapabilities.chrome();
capabilities.setCapability("chrome.switches", Arrays.asList("--user-data-dir=/path/to/profile/directory"));
WebDriver driver = new ChromeDriver(capabilities);

はい、それは Java ですが、Python に変換するのはかなり簡単なはずです。また、ドキュメントには、カスタム プロファイルを設定できることに関する既知のバグがあると書かれていることに注意してください。

編集:

私はあなたのために働くはずのややハッキーな解決策を見つけたと思います。

  1. 実行している OS のユーザー/ホーム フォルダーを含むマスター フォルダーに移動します。
  2. SYSTEM ユーザー フォルダの下で、Chrome ユーザー データ ディレクトリを見つけます。
  3. Preferences ファイルを開きます (生のテキストなので、任意のテキスト エディターで動作します)。
  4. 「download」ノードの下で、「default_directory」ノードを作成または変更して、任意のダウンロード場所にします

これらの手順では、Selenium が実際に SYSTEM ユーザーの下で Chrome を少なくとも 1 回実行していることを前提としていることに注意してください。そうでない場合は、たとえばターミナルから、自分で SYSTEM ユーザーの下で Chrome を実行して、必要なディレクトリを手動で作成できます。

于 2012-12-12T14:07:18.910 に答える