一時プロファイルを含むディレクトリを指定する方法が組み込まれていないように見えるため、selenium-webdriver にモンキー パッチを適用する必要があると思います。
バックグラウンド
Seleium-webdriver (したがって、watir-webdriver) は、次directory in \selenium-webdriver-2.26.0\lib\selenium\webdriver\firefox\profile.rb
のメソッドを使用して一時的な Firefox プロファイルを作成します。
def layout_on_disk
profile_dir = @model ? create_tmp_copy(@model) : Dir.mktmpdir("webdriver-profile")
FileReaper << profile_dir
install_extensions(profile_dir)
delete_lock_files(profile_dir)
delete_extensions_cache(profile_dir)
update_user_prefs_in(profile_dir)
profile_dir
end
一時フォルダーは、次によって作成されます。
Dir.mktmpdir("webdriver-profile")
これはtmpdir ライブラリで定義されています。メソッドのDir.mktmpdir
場合、2 番目のオプション パラメータは、親フォルダ (つまり、一時プロファイルを作成する場所) を定義します。この場合のように、値が指定されていない場合、一時フォルダが に作成されます。この場合、これDir.tmpdir
は「tmp」フォルダです。
解決
一時フォルダーが作成される場所を変更するには、layout_on_disk
メソッドにモンキー パッチを適用して、 の呼び出しで目的のディレクトリを指定しますDir.mktmpdir
。次のようになります。
require 'watir-webdriver'
module Selenium
module WebDriver
module Firefox
class Profile
def layout_on_disk
#In the below line, replace 'your/desired/path' with
# the location of where you want the temporary profiles
profile_dir = @model ?
create_tmp_copy(@model) :
Dir.mktmpdir("webdriver-profile", 'your/desired/path')
FileReaper << profile_dir
install_extensions(profile_dir)
delete_lock_files(profile_dir)
delete_extensions_cache(profile_dir)
update_user_prefs_in(profile_dir)
profile_dir
end
end
end
end
end
browser = Watir::Browser.new :ff
#=> The temporary directory will be created in 'your/desired/path'.