web-dev-qa-db-fra.com

Firefox WebDriver ouvre toujours la première page

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.

41
divide by zero

Pour désactiver cette page de démarrage ennuyeuse:

 More protection. The most privacy. Mozilla Firefox firstrun screen

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.

22
Elmue

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");
10
pardill0

J'ai rencontré le même problème. Je viens de changer la version de Selenium à 2.48 et le problème résolu.

9
Tanvir Ahmed

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>
4
emery

La solution C #, mise à niveau de Selenium WebDriver vers la version 2.49.0, a résolu le problème pour moi.

3
Bleeped

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
1
Sam3k

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);  
1
user5766476

Je suis confronté au même problème ... Ma solution:

  • J'ai rétrogradé Firefox à 36.0. 
  • Cela a bien fonctionné avec Sélénium 2.53.1.

J'espère que cette aide. :) 

0
Tam Dao