java - example - selenium webdriver download
Selenium 2.53 no funciona en Firefox 47 (15)
A partir de septiembre de 2016
Firefox 48.0
y
selenium==2.53.6
funcionan bien sin ningún error
Para actualizar Firefox solo en
Ubuntu 14.04
sudo apt-get update
sudo apt-get upgrade firefox
Recibo un error al usar Firefox con WebDriver.
org.openqa.selenium.firefox.NotConnectedException: Unable to connect
to host 127.0.0.1 on port 7055 after 45000 ms.
- Versión de Firefox: 47.0
- Selenio: 2.53.0
- Windows 10 de 64 bits
¿Alguien tiene un problema similar o alguna idea de cuál es la solución para esto? Funciona bien con Chrome, pero con Firefox ninguna de las URL se está cargando.
Así es como se veía el problema en Wireshar k
Simplemente cargue 2.53.1 y todo funcionará.
En caso de que alguien se pregunte cómo usar Marionette en C #.
FirefoxProfile profile = new FirefoxProfile(); // Your custom profile
var service = FirefoxDriverService.CreateDefaultService("DirectoryContainingTheDriver", "geckodriver.exe");
// Set the binary path if you want to launch the release version of Firefox.
service.FirefoxBinaryPath = @"C:/Program Files/Mozilla Firefox/firefox.exe";
var option = new FirefoxProfileOptions(profile) { IsMarionette = true };
var driver = new FirefoxDriver(
service,
option,
TimeSpan.FromSeconds(30));
Anular las opciones de Firefox para proporcionar la función de agregar capacidad adicional y establecer el perfil de Firefox porque el selenio v53 aún no proporciona esa función.
public class FirefoxProfileOptions : FirefoxOptions
{
private DesiredCapabilities _capabilities;
public FirefoxProfileOptions()
: base()
{
_capabilities = DesiredCapabilities.Firefox();
_capabilities.SetCapability("marionette", this.IsMarionette);
}
public FirefoxProfileOptions(FirefoxProfile profile)
: this()
{
_capabilities.SetCapability(FirefoxDriver.ProfileCapabilityName, profile.ToBase64String());
}
public override void AddAdditionalCapability(string capabilityName, object capabilityValue)
{
_capabilities.SetCapability(capabilityName, capabilityValue);
}
public override ICapabilities ToCapabilities()
{
return _capabilities;
}
}
Nota: el lanzamiento con perfil no funciona con FF 47, funciona con FF 50 Nightly.
Sin embargo, tratamos de convertir nuestra prueba para usar Marionette, y no es viable en este momento porque la implementación del controlador no está completa o tiene errores. Sugeriría que las personas degraden su Firefox en este momento.
Es un problema FF47 here
Baje a FF 46 o inferior (o pruebe el desarrollador FF48 https://developer.mozilla.org/en-US/Firefox/Releases/48 )
Instrucciones sobre cómo degradar: https://www.liberiangeek.net/2012/04/how-to-install-previous-versions-of-firefox-in-ubuntu-12-04-precise-pangolin/ O si usted es en Mac, como lo sugirió otra persona en este hilo, use brew.
Finalmente instalé una versión anterior adicional de Firefox (utilizada solo para pruebas) para resolver esto, además de mi última instalación regular (segura y actualizada) de Firefox.
Esto requiere que webdriver sepa dónde puede encontrar el binario de Firefox, que se puede configurar a través de la propiedad
webdriver.firefox.bin
.
Lo que funcionó para mí (mac, maven,
/tmp/ff46
como carpeta de instalación) es:
mvn -Dwebdriver.firefox.bin=/tmp/ff46/Firefox.app/Contents/MacOS/firefox-bin verify
Para instalar una versión anterior de Firefox en una carpeta dedicada, cree la carpeta, abra el Finder en esa carpeta, descargue el dmg de Firefox y arrástrelo a ese Finder.
Firefox 47.0 dejó de funcionar con Webdriver.
La solución más fácil es cambiar a Firefox 47.0.1 y Webdriver 2.53.1. Esta combinación nuevamente funciona. De hecho, la restauración de la compatibilidad con Webdriver fue la razón principal detrás de la versión 47.0.1, de acuerdo con https://www.mozilla.org/en-US/firefox/47.0.1/releasenotes/ .
Intenta usar firefox 46.0.1. Se combina mejor con Selenium 2.53
https://ftp.mozilla.org/pub/firefox/releases/46.0.1/win64/en-US/
Lamentablemente, Selenium WebDriver 2.53.0 no es compatible con Firefox 47.0.
El componente WebDriver que maneja los navegadores Firefox (
FirefoxDriver
) será descontinuado.
A partir de la versión 3.0, Selenium WebDriver necesitará el binario
geckodriver
para administrar los navegadores Firefox.
Más información
here
y
here
.
Por lo tanto, para usar Firefox 47.0 como navegador con Selenium WebDriver 2.53.0, debe descargar el
controlador Firefox
(que es un archivo binario llamado
geckodriver
partir de la versión 0.8.0, y anteriormente se
wires
) y exportar su ruta absoluta al variable
webdriver.gecko.driver
como una propiedad del sistema en su código Java:
System.setProperty("webdriver.gecko.driver", "/path/to/geckodriver");
Afortunadamente, la biblioteca WebDriverManager puede hacer este trabajo por usted, es decir, descargar el binario Marionette adecuado para su máquina (Linux, Mac o Windows) y exportar el valor de la propiedad adecuada del sistema. Para usar esta biblioteca, debe incluir esta dependencia en su proyecto:
<dependency>
<groupId>io.github.bonigarcia</groupId>
<artifactId>webdrivermanager</artifactId>
<version>3.6.2</version>
</dependency>
... y luego ejecute esta línea en su programa antes de usar WebDriver:
WebDriverManager.firefoxdriver().setup();
Un ejemplo completo de ejecución de un caso de prueba JUnit 4 usando WebDriver podría ser el siguiente:
public class FirefoxTest {
protected WebDriver driver;
@BeforeClass
public static void setupClass() {
WebDriverManager.firefoxdriver().setup();
}
@Before
public void setupTest() {
driver = new FirefoxDriver();
}
@After
public void teardown() {
if (driver != null) {
driver.quit();
}
}
@Test
public void test() {
// Your test code here
}
}
Tenga en cuenta que Marionette será la única opción para el futuro (para WebDriver 3+ y Firefox 48+), pero actualmente (versión 0.9.0 en el momento de la escritura) no es muy estable. Eche un vistazo a la hoja de ruta de Marionette para obtener más detalles.
ACTUALIZAR
Selenium WebDriver
2.53.1
se lanzó el 30 de junio de 2016.
FirefoxDriver
está trabajando nuevamente con Firefox
47.0.1
como navegador.
Las nuevas bibliotecas de Selenium ya están disponibles, de acuerdo con: here
La página de descarga http://www.seleniumhq.org/download/ parece que aún no se ha actualizado, pero al agregar 1 a la versión secundaria en el enlace, podría descargar la versión C #: http://selenium-release.storage.googleapis.com/2.53/selenium-dotnet-2.53.1.zip
A mí me funciona con Firefox 47.0.1.
Como nota al margen, pude compilar solo la extensión
webdriver.xpi
Firefox desde la rama maestra en GitHub, ejecutando
./go //javascript/firefox-driver:webdriver:run
, que dio un mensaje de error pero
./go //javascript/firefox-driver:webdriver:run
la
compilación /javascript/firefox-driver/webdriver.xpi
, que podría cambiar el nombre (para evitar un choque de nombres) y cargar con éxito con el método FirefoxProfile.AddExtension.
Esa fue una solución razonable sin tener que reconstruir toda la biblioteca Selenium.
Me parece que la mejor solución es actualizar a Selenium 3.0.0, descargar geckodriver.exe y usar Firefox 47 o superior.
Cambié la inicialización de Firefox a:
string geckoPathTest = Path.Combine(Environment.CurrentDirectory, "TestFiles//geckodriver.exe");
string geckoPath = Path.Combine(Environment.CurrentDirectory, "geckodriver.exe");
File.Copy(geckoPathTest, geckoPath);
Environment.SetEnvironmentVariable("webdriver.gecko.driver", geckoPath);
_firefoxDriver = new FirefoxDriver();
Puedes intentar usar este código,
private WebDriver driver;
System.setProperty("webdriver.firefox.marionette","Your path to driver/geckodriver.exe");
driver = new FirefoxDriver();
Actualicé a selenium 3.0.0 y la versión de Firefox es 49.0.1
Puede descargar geckodriver.exe desde https://github.com/mozilla/geckodriver/releases
Asegúrese de descargar solo el archivo zip, geckodriver-v0.11.1-win64.zip o win32 uno según su sistema y extráigalo en una carpeta.
Ponga la ruta para esa carpeta en las comillas "Su ruta al controlador". No olvide poner geckodriver.exe en la ruta.
Puedo confirmar que
selenium 2.53.6
funciona para mí con
firefox 44
en ubuntu 15.
Si está en una Mac,
brew install geckodriver
y listo.
Si usa OSX con Homebrew, puede instalar versiones antiguas de Firefox a través de brew cask:
brew tap goldcaddy77/firefox
brew cask install firefox-46 # or whatever version you want
Después de la instalación, solo necesitará cambiar el nombre de su ejecutable FF en el directorio de Aplicaciones a "Firefox".
Se puede encontrar más información en el repositorio de git homebrew-firefox . Atrezzo a smclernon para crear el barril original .
Tuve el mismo problema y descubrí que necesita cambiar los controladores porque here . En lugar de usar el controlador Firefox , debe usar el controlador Marionette para ejecutar sus pruebas. Actualmente estoy trabajando en la configuración y puedo publicar algunos pasos sugeridos si lo desea cuando tengo un ejemplo de trabajo.
Estos son los pasos que seguí para que esto funcione en mi entorno Java en Mac (también funcionó para mí en mis instalaciones de Linux (Fedora, CentOS y Ubuntu)):
- Descargue el ejecutable nocturno de la página de lanzamientos
- Descomprima el archivo
-
Cree un directorio para Marionette (es decir,
mkdir -p /opt/marionette
) - Mueva el archivo ejecutable desempaquetado al directorio que creó
-
Actualice su
$PATH
para incluir el ejecutable (también, edite su.bash_profile
si lo desea) -
: bangbang: Asegúrese de que
chmod +x /opt/marionette/wires-xxx
para que sea ejecutable - En su lanzamiento, asegúrese de usar el siguiente código a continuación (es lo que usé en Mac)
Nota rápida
Todavía no funciona como se esperaba, pero al menos se inicia el navegador ahora. Necesito averiguar por qué: en este momento parece que necesito reescribir mis pruebas para que funcione.
Fragmento de Java
WebDriver browser = new MarionetteDriver();
System.setProperty("webdriver.gecko.driver", "/opt/marionette/wires-0.7.1-OSX");