Как отключить эту страницу "первого запуска" раз и навсегда для FF?
Когда создается драйвер FF, он открывает вкладку с помощью - https://www.mozilla.org/en-US/firefox/42.0/firstrun/learnmore/ и дополнительную вкладку с целевой страницей.
Как отключить эту страницу "первого запуска" раз и навсегда для FF?
Когда создается драйвер FF, он открывает вкладку с помощью - https://www.mozilla.org/en-US/firefox/42.0/firstrun/learnmore/ и дополнительную вкладку с целевой страницей.
Чтобы отключить эту раздражающую стартовую страницу:
в С# с селеном 2.48 Я нашел следующее решение:
FirefoxProfile prof = new FirefoxProfile();
prof.SetPreference("browser.startup.homepage_override.mstone", "ignore");
prof.SetPreference("startup.homepage_welcome_url.additional", "about:blank");
Driver = new FirefoxDriver(prof);
... и он больше никогда вас не беспокоит.
Примечание. Один из этих параметров также будет работать. Я использую их вместе, чтобы сделать его пуленепробиваемым.
В случае решения, отлично работает
FirefoxProfile fp = new FirefoxProfile();
fp.setPreference("browser.startup.homepage", "about:blank");
fp.setPreference("startup.homepage_welcome_url", "about:blank");
fp.setPreference("startup.homepage_welcome_url.additional", "about:blank");
Я столкнулся с той же проблемой. Я только что изменил версию Selenium на 2.48, и проблема решена.
Это связано с несовместимостью версий Selenium и Firefox, но не с каким-либо конкретным номером версии.
Вы должны быть 1-2 версиями Firefox за новейшим, если ваш WebDriver находится в последней версии. В противном случае сверните версию Firefox еще дальше, если ваш WebDriver старше или обновите Webdriver.
Чтобы получить более старый Firefox, попробуйте https://ftp.mozilla.org/pub/firefox/releases/ или http://www.oldapps.com/
или в Linux, в зависимости от вашего дистрибутива
yum list --showduplicates firefox
sudo yum install firefox-<version>
или
apt-cache show firefox | grep Version
sudo apt-get install firefox=<version>
Решение С#, обновленный Selenium WebDriver до 2.49.0 решил проблему для меня.
Вышеупомянутые решения не работают, я пробовал их. Что для меня работало и, вероятно, будет для вас (при использовании firefox 43 или меньше):
prof.setPreference("xpinstall.signatures.required", false);
prof.setPreference("toolkit.telemetry.reportingpolicy.firstRun", false);
Проблемы с 43 и селеном имеют двоякий характер: стандартная настройка расширений (до true) и первая страница запуска. Эти линии решают оба. Они должны быть установлены программно. Если вы попытаетесь установить их примерно: config (или непосредственно в prefs.js), это не повлияет на новые браузеры, которые вы открываете с помощью селена. Следует отметить, что они говорят, что firefox 44 не позволит вам установить переменную подписанных расширений (так что это не будет работать на 44).
Я включаю код из моего действующего кода, показывающего правильное использование:
FirefoxProfile prof = new FirefoxProfile();
//FirefoxProfile prof = profile.getProfile("default");
//prof.setPreference("browser.startup.homepage", proteinPageUrl);
//prof.setPreference("startup.homepage_welcome_url", proteinPageUrl);
//prof.setPreference("startup.homepage_welcome_url.additional", proteinPageUrl);
prof.setPreference("xpinstall.signatures.required", false);
prof.setPreference("toolkit.telemetry.reportingpolicy.firstRun", false);
//Object socketLock = new Object();
//synchronized(socketLock){
//driver = new FirefoxDriver();
driver = new FirefoxDriver(prof);
//driver = forceInit();
//driver.open();
//}//end synch block
//get protein page
boolean done = true;
do{
driver.get(proteinPageUrl);
final Wait<WebDriver> waitDriver = new FluentWait<WebDriver>(driver)
.withTimeout(30, java.util.concurrent.TimeUnit.SECONDS)
.pollingEvery(5, java.util.concurrent.TimeUnit.SECONDS);
try{
inputTextFeildElement = waitDriver.until(new Function<WebDriver,WebElement>(){
public WebElement apply(WebDriver diver){
return driver.findElement(By.name("term"));
}});
}
catch(NoSuchElementException nsee){
//if not find by name try find by id
if(driver.findElements(By.id("term")).size() != 0){
try{
inputTextFeildElement = driver.findElement(By.id("term"));
done = true;
} catch(NoSuchElementException nsee2){
synchronized(threadLogFile){
try {
threadLogWriter = new PrintWriter(new FileWriter(threadLogFile.getAbsoluteFile(), true));
} catch (IOException ioe) {
System.out.println("error opening file for append: " + ioe.getMessage());
ioe.printStackTrace();
}//catch
threadLogWriter.println("Thread Id: " + threadId + " with thread name: " + threadName + " fails to find input element by name or id to put accession: " + accession);
threadLogWriter.flush();
threadLogWriter.close();
}//synchronized
done = false;
}//catch nsee2
}//catch nsee
}
catch(ElementNotVisibleException enve){
done = false;
}
}while(!done);
Если вы используете selenium webdriver из Capybara/Cucumber, вы можете изменить URL-адрес по умолчанию при регистрации вашего драйвера с помощью startup.homepage_welcome_url.additional
:
Capybara.register_driver :firefox do |app|
profile = Selenium::WebDriver::Firefox::Profile.new
profile['browser.startup.homepage_override.mstone'] = 'ignore'
profile['startup.homepage_welcome_url.additional'] = 'about:blank'
Capybara::Selenium::Driver.new(app, :browser => :firefox, :profile => profile)
end
Я столкнулся с той же проблемой. Мое решение:
Я надеюсь, что эта помощь.:)