Comment désactiver cette page "première exécution" une fois pour toutes pour FF?
Lorsque le pilote FF est créé, il ouvre l'onglet avec - https://www.mozilla.org/en-US/firefox/42.0/firstrun/learnmore/ Et un onglet supplémentaire avec la page cible.
Pour désactiver cette page de démarrage ennuyeuse:
en C # avec sélénium 2.48 j'ai trouvé la solution suivante:
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);
... et cela ne vous dérangera plus jamais.
Remarque: Un seul de ces paramètres fonctionnera également. Je les utilise ensemble pour le rendre à l'épreuve des balles.
J'ai trouvé une solution, fonctionne bien
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");
J'ai rencontré le même problème. Je viens de changer la version de Selenium à 2.48 et le problème résolu.
Cela est dû à une incompatibilité entre les versions de Selenium et de Firefox, mais pas à un numéro de version spécifique.
Vous devriez avoir une à deux versions de Firefox derrière la plus récente, si votre WebDriver est sur la dernière version. Sinon, restaurez la version de Firefox encore plus si votre WebDriver est plus ancien, ou mettez à niveau Webdriver.
Pour obtenir un ancien Firefox, essayez https://ftp.mozilla.org/pub/firefox/releases/ ou http://www.oldapps.com/
ou sur Linux, selon votre distribution
yum list --showduplicates firefox
Sudo yum install firefox-<version>
ou
apt-cache show firefox | grep Version
Sudo apt-get install firefox=<version>
La solution C #, mise à niveau de Selenium WebDriver vers la version 2.49.0, a résolu le problème pour moi.
Si vous utilisez le pilote Web Selenium de Capybara/Cucumber, vous pouvez modifier l'URL par défaut lorsque vous enregistrez votre pilote à l'aide de 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
Les solutions ci-dessus ne fonctionnent pas, je les ai essayées . Ce qui a fonctionné pour moi et le sera probablement pour vous (si vous utilisez Firefox 43 ou moins):
prof.setPreference("xpinstall.signatures.required", false);
prof.setPreference("toolkit.telemetry.reportingpolicy.firstRun", false);
Les problèmes avec 43 et Selenium sont doubles, le paramètre d’extensions signées par défaut (à true) et la page de première exécution. Ces lignes résolvent les deux. Ceux-ci doivent être définis par programme. Si vous essayez de les configurer dans about: config (ou directement dans prefs.js), cela n’affectera pas les nouveaux navigateurs que vous ouvrez avec Selenium. Il convient de noter qu’ils disent que Firefox 44 ne vous autorisera pas à définir la variable des extensions signées (donc cela ne fonctionnera pas sur 44).
J'inclus le codeblock de mon code qui fonctionne maintenant et qui montre l'utilisation correcte:
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);
Je suis confronté au même problème ... Ma solution:
J'espère que cette aide. :)