firefoxdriver - selenium webdriver java
No se puede abrir el navegador con Selenium despuĆ©s de la actualizaciĆ³n de Firefox (7)
1) Descargue geckodriver 0.6.2, descomprima, cambie el nombre a "wires", no "wires.exe" driver
2) Agregue la ubicación ejecutable de cables a PATH (pongo esto en mi carpeta de Python C: Archivos de programa / Python ...) Seleccione Inicio, seleccione Panel de control. haga doble clic en Sistema y seleccione la pestaña Avanzado. Haga clic en Variables de entorno. ... En la ventana Editar variable del sistema (o Nueva variable del sistema), especifique el valor de la variable de entorno PATH. ... (Use '';'' para separar las rutas, es decir, [C: Usuarios / Rubén; C: Archivos de programa / Python]
3) Degradar a Firefox 45 https://ftp.mozilla.org/pub/firefox/releases/45.0.2/win64/en-US/
Uso Selenium WebDriver en Ubuntu Desktop 16.04 y no puedo abrir el navegador. Recibo el siguiente error después de la actualización de Firefox (antes de esto, todo funcionó):
Traceback (most recent call last):
File "test.py", line 6, in <module>
driver = webdriver.Firefox()
File "/usr/local/lib/python3.5/dist-packages/selenium/webdriver/firefox/webdriver.py", line 81, in __init__
self.binary, timeout)
File "/usr/local/lib/python3.5/dist-packages/selenium/webdriver/firefox/extension_connection.py", line 51, in __init__
self.binary.launch_browser(self.profile, timeout=timeout)
File "/usr/local/lib/python3.5/dist-packages/selenium/webdriver/firefox/firefox_binary.py", line 68, in launch_browser
self._wait_until_connectable(timeout=timeout)
File "/usr/local/lib/python3.5/dist-packages/selenium/webdriver/firefox/firefox_binary.py", line 98, in _wait_until_connectable
raise WebDriverException("The browser appears to have exited "
selenium.common.exceptions.WebDriverException: Message: The browser appears to have exited before we could connect. If you specified a log_file in the FirefoxBinary constructor, check it for details.
A partir de la versión 47.0 de Firefox (que salió un poco), se debe usar un nuevo controlador (creado por mozilla en lugar de selenio) para conectarse a Firefox, debido a un error introducido en esta versión. A partir de Firefox versión 48.0, el controlador anterior quedará obsoleto por completo y solo se puede usar Marionette, por lo que es mejor cambiar ahora. Ver: Marionette Webdriver para Firefox
Descargue el
driver
(en OSX solo use
brew install geckodriver
), cambie el nombre del archivo ejecutable a
wires.exe
en Windows o
wires
en los sistemas * nix, y asegúrese de que el archivo ejecutable esté presente en la ruta de su sistema, luego use este controlador en su programa del controlador anterior utilizando lo siguiente:
Cuando use un controlador web local:
Pitón:
firefox_capabilities = DesiredCapabilities.FIREFOX
firefox_capabilities[''marionette''] = True
driver = webdriver.Firefox(capabilities=firefox_capabilities)
Rubí:
driver = Selenium::WebDriver.for :firefox, marionette: true
Javascript:
var capabilities = Capabilities.firefox();
capabilities.set(''marionette'', true);
var driver = new webdriver.Builder().withCapabilities(capabilities).build();
Java:
DesiredCapabilities capabilities = DesiredCapabilities.firefox();
capabilities.setCapability("marionette", true);
Webdriver driver = new FirefoxDriver(capabilities);
C#:
var driver = new FirefoxDriver(new FirefoxOptions());
Cuando se usa la cuadrícula de selenio:
Cuando se usa una grilla de selenio, el controlador debe estar presente en la ruta de todas las máquinas de su grilla.
Pitón:
firefox_capabilities = DesiredCapabilities.FIREFOX
firefox_capabilities[''marionette''] = True
driver = webdriver.Firefox(capabilities=firefox_capabilities)
Rubí:
caps = Selenium::WebDriver::Remote::Capabilities.firefox marionette: true
driver = Selenium::WebDriver.for :firefox, desired_capabilities: caps
Java:
DesiredCapabilities capabilities = DesiredCapabilities.firefox();
// Set Marionette on so the Grid will use this instead of normal FirefoxDriver
capabilities.setCapability("marionette", true);
WebDriver driver = new RemoteWebDriver(capabilities);
C#:
DesiredCapabilities capabilities = DesiredCapabilities.Firefox();
// Set Marionette on so the Grid will use this instead of normal FirefoxDriver
capabilities.SetCapability("marionette", true);
var driver = new RemoteWebDriver(capabilities);
Algunas personas tienen el problema de que algunos
button
o cuadros de
select
no pueden seleccionarse en modo
marionette
.
Una alternativa es usar una versión anterior de Firefox:
Puede descargar el binario here y usarlo aquí:
from selenium import webdriver
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary
binary = FirefoxBinary(''path/to/binary'')
driver = webdriver.Firefox(firefox_binary=binary)
No es necesario degradar Firefox. Me he enfrentado a un problema con la versión de Windows y Firefox 49. Estaba usando la versión geckodrvier de 64 bits. Lo cambié a la versión geckodrvier de 32 bits y resolvió el problema. Ahora el navegador se abre correctamente sin ningún problema.
CORREGIDO : ¡La solución en este momento es degradar Firefox! ejecuta este comando para obtener una lista de las versiones disponibles de Firefox.
apt-cache show firefox | grep Version
Mi resultado:
Version: 47.0+build3-0ubuntu0.16.04.1
Version: 45.0.2+build1-0ubuntu1
Instalar en pc:
sudo apt-get install firefox=45.0.2+build1-0ubuntu1
Para mantener esta versión y no permitir actualizaciones:
sudo apt-mark hold firefox
Si desea recuperar la versión de Firefox y permitir actualizaciones:
sudo apt-mark unhold firefox
sudo apt-get upgrade
SOLUCIÓN downgrade a la versión 45:
firefox --version
Mozilla Firefox 47.0
apt-get remove firefox
wget https://ftp.mozilla.org/pub/firefox/releases/45.0/linux-x86_64/en-US/firefox-45.0.tar.bz2
tar -xjf firefox-45.0.tar.bz2
mv firefox /opt/firefox45
ln -s /opt/firefox45/firefox /usr/bin/firefox
firefox --version
Mozilla Firefox 45.0
Solución : actualice Firefox a 47.0.1 y Selenium a 2.53.1.
Esta combinación funcionó para mí.
Para obtener más detalles, consulte https://.com/a/37728659/6469532