我需要使用Selenium和Geckodriver
保留我的缓存。我有一个Firefox配置文件,我在启动Geckodriver
时加载它:
ProfilesIni profilesIni = new ProfilesIni();
FirefoxProfile firefoxProfile = profilesIni.getProfile("profile-name");
firefoxOptions.setProfile(firefoxProfile);
这样可以正常工作,但不复制缓存。转到about:cache
,它是空的。我想保留我的缓存,我想直接使用我的个人资料。目前Selenium/Geckodriver
复制部分配置文件并使用它,但不使用缓存。
使用Geckodriver
时如何保留缓存?
答案 0 :(得分:0)
我使用现有的自定义Firefox配置文件和此代码(完整):
FirefoxOptions options = new FirefoxOptions();
ProfilesIni allProfiles = new ProfilesIni();
FirefoxProfile selenium_profile = allProfiles.getProfile("selenium_profile");
options.setProfile(selenium_profile);
options.setBinary("C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe");
System.setProperty("webdriver.gecko.driver", "C:\\Users\\pburgr\\Desktop\\geckodriver-v0.20.0-win64\\geckodriver.exe");
driver = new FirefoxDriver(options);
driver.manage().window().maximize();
和我的缓存"增长" normaly。
如果零缓存仍然存在,请检查Firefox配置文件的设置(关闭时删除缓存)。
答案 1 :(得分:0)
找出解决方案。
使用此方法加载配置文件不起作用:
FirefoxProfile firefoxProfile = profilesIni.getProfile("profile-name");
对我而言,这确实有效:
String profilePath = "C\\Users\\Name\\AppData\\Local\\Mozilla\\Firefox\\Profiles\\myprofile";
FirefoxProfile firefoxProfile = new FirefoxProfile(new File(profilePath));
我现在拥有正确的完整缓存。