tutorial firefoxdriver chrome firefox selenium selenium-webdriver selenium-firefoxdriver

firefoxdriver - Firefox webdriver abre la página de primera ejecución todo el tiempo



selenium webdriver python (8)

¿Cómo desactivar esta página de "primera ejecución" de una vez por todas para FF?

Cuando se crea el controlador FF, abre la pestaña con - https://www.mozilla.org/en-US/firefox/42.0/firstrun/learnmore/ y una pestaña adicional con la página de destino.


Encontré una solución, funciona 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");


Esto es causado por la incompatibilidad entre las versiones de Selenium y Firefox, pero no por un número de versión específico.

Deberías tener 1-2 versiones de Firefox detrás de la más nueva, si tu WebDriver está en la última versión. De lo contrario, lleve la versión de Firefox aún más lejos si su WebDriver es anterior o actualice Webdriver.

Para obtener un Firefox anterior, pruebe https://ftp.mozilla.org/pub/firefox/releases/ o http://www.oldapps.com/

o en Linux, dependiendo de su distribución

yum list --showduplicates firefox sudo yum install firefox-<version>

o

apt-cache show firefox | grep Version sudo apt-get install firefox=<version>


He enfrentado el mismo problema. Acabo de cambiar la versión de Selenium a 2.48 y el problema fue resuelto.


La solución C #, Selenium WebDriver actualizado a 2.49.0 resolvió el problema por mí.


Las soluciones anteriores no funcionan, las he probado. Lo que funcionó para mí, y probablemente sea para ti (si usas firefox 43 o menos) es:

prof.setPreference("xpinstall.signatures.required", false); prof.setPreference("toolkit.telemetry.reportingpolicy.firstRun", false);

Los problemas con 43 y el selenio son dobles, la configuración predeterminada de extensiones firmadas (en verdadero) y la primera página de ejecución. Estas líneas resuelven ambos. Estos deben establecerse de forma programática. Si intentas configurarlos en about: config (o directamente en prefs.js) no afectará a los nuevos navegadores que abras con selenio. Cabe señalar que dicen que Firefox 44 no le permitirá configurar la variable de extensiones firmadas (por lo que esto no funcionará en 44).

Incluyo el bloque de código de mi código actual que muestra el uso correcto:

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


Me enfrenté al mismo problema. Mi solución:

  • Bajé de categoría a Firefox a 36.0.
  • Funcionó bien con Selenium 2.53.1.

Espero esta ayuda. :)


Para desactivar esta molesta página de inicio:

en C # con Selenium 2.48 encontré la siguiente solución:

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

... y nunca te molestará de nuevo.

Nota: Una de estas configuraciones solo también funcionará. Los uso juntos para que sea a prueba de balas.


Si usa Selenium Webdriver de Capybara / Cucumber, puede cambiar la URL predeterminada cuando registre su controlador usando 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