c# selenium firefox selenium-webdriver selenium-firefoxdriver

c# - geckodriver repository



geckodriver.exe no en el directorio actual o la variable de ruta, Selenium 2.53.1+Firefox 48+Selenium 3 Beta (9)

Se han recibido muchas preguntas sobre Selenium 2.53.1 y Firefox 47.0.1, pero ninguna con respecto a la versión Selenium 3 Beta. Estoy intentando usar los nuevos controladores gecko / marionette Firefox, pero a pesar de que tengo la ubicación del controlador; la ruta de mi entorno, la carpeta de instalación de Firefox en los programas y la ubicación de la unidad en el entorno del sistema, aún no funcionarán correctamente.

Error:

Geckodriver.exe no existe en el directorio actual o en un directorio en la variable de entorno PATH. El controlador se puede descargar en https://github.com/mozilla/geckodriver/releases .

Utilizando:

  • Servidor Selenium 2.53.1
  • Firefox 48
  • Selenium 3 Beta DLL
  • Ventana 10

Código de ejemplo 1

using OpenQA.Selenium.Firefox; public static class FirefoxInitialise { public static IWebDriver Driver {get; set;} Driver = new FirefoxDriver(); }

También intenté lo siguiente:

using OpenQA.Selenium.Firefox; public static class FirefoxInitialise { public static IWebDriver Driver {get; set;} FirefoxDriverServices service = FirefoxDriverService.CreateDefaultService(); service.FirefoxBinaryPath = @"C:/Program Files/Mozilla Firefox/firefox.exe"; FirefoxOptions options = new FirefoxOptions(); TimeSpan time = TimeSpan.FromSeconds(10); Driver = new FirefoxDriver(service, options, time); }

Cualquier ayuda o idea de por qué el código aún no detectará este controlador sería muy apreciada.


Esta solución puede ayudarte a solucionar el problema: (Aunque me ayudó)

public class TestResult { private IWebDriver driver; private StringBuilder verificationErrors; private string baseURL; private bool acceptNextAlert = true; [TestInitialize] public void SetupTest() { FirefoxDriverService service = FirefoxDriverService.CreateDefaultService(@"C:/geckodriver", "geckodriver.exe"); service.Port = 64444; service.FirefoxBinaryPath = @"C:/Program Files (x86)/Firefox Developer Edition/firefox.exe"; driver = new FirefoxDriver(service); baseURL = "http://localhost:49539"; verificationErrors = new StringBuilder(); } } REFERENCIA


Estaba teniendo un problema de Visual Studio 2017 en el que fallaría la compilación porque estaba buscando en un directorio inexistente para el ejecutivo de geckodriver. También lo había agregado usando Nuget Pack Manager. Lo que encontré fue en Visual Studio-> Proyecto-> Propiedades-> Build it works si haces que la compilación sea independiente de la arquitectura: el objetivo de la plataforma es Cualquier CPU y dejas las otras casillas de verificación (Preferir 32 bits, Permitir código no seguro, Optimizar el código) todo sin marcar o simplemente tener Preferido 32 bits verificado (que es el predeterminado en mi sistema). Por cierto, mi aplicación era una aplicación de consola .NET Framework 4.5.2


Esto es para quiénes son los principiantes que escribirán la versión corta en la parte inferior después de esta publicación :) La manera más fácil primero es descargar todos los controladores que navegador usas y extraer todos los controladores en, por ejemplo, C:/Selenium/ allí e ir a VisualStudio y desde aquí agregue los Selenium packages muestran en las imágenes Haga clic aquí en la consola escriba este código PM> Install-Package Selenium.WebDriver luego copie su directorio de controladores y desde la pestaña de búsqueda de Windows escriba variables y seleccione (Editar el entorno del sistema y variables) shown pic2 en esta ventana, tendrá una pestaña avanzada en la parte inferior, haga clic en Variables de entorno ... aquí tiene la sección de System variables , encuentre PATH or Path Variable de PATH or Path y edítela, tenga cuidado don''t delete it!! Haga clic en nuevo , pegue el directorio de controladores y haga clic en el botón Aceptar de todos los widgets, eso es todo. reinicie su programa VS y ckeck it. Después de esto, no tienes que agregar la ruta del director en tu Constructor como

IWebDriver driver2 = new InternetExplorerDriver(@"C:/Selenium");

Una cosa más no te olvides de importar archivos.

using OpenQA.Selenium; using OpenQA.Selenium.Firefox; using OpenQA.Selenium.IE;

Para más chicos de TI avanzados.

  1. Agregar al directorio de ruta de acceso del medio ambiente suyo.
  2. VisualStudio instala Selenium usando el administrador de paquetes NuGet en el modo de consola o cómo le gustaría.

    PM> Install-Package Selenium.WebDriver

  3. reiniciar VS.


Intentaré esto:

  1. Primero, asegúrese de que su proyecto C # ejecute la misma versión de .NET Framework que las bibliotecas del controlador del cliente (cuando las descarga de Selenium HQ, debería ver la versión de framework en la que están basadas). Tengo 3.5 y 4.0 hasta el 15/09/2017, así que tuve que degradar mi proyecto de C # a .NET 4.0 para usar las bibliotecas de 4.0 Client Driver.

  2. En su código, al crear el servicio de controlador de Firefox, asegúrese de especificar explícitamente la ruta a donde se encuentra su geckodriver.exe. Vea cómo agregué un parámetro de ruta a su llamada a FirefoxDriverService.CreateDefaultService :

    using OpenQA.Selenium.Firefox; public static class FirefoxInitialise { private static IWebDriver Driver{get; set;} public static IWebDriver Init() { // I''m assuming your geckodriver.exe is located there: // @"C:/MyGeckoDriverExePath/geckodriver.exe" FirefoxDriverService service = FirefoxDriverService.CreateDefaultService(@"C:/MyGeckoDriverExePath/"); service.FirefoxBinaryPath = @"C:/Program Files/Mozilla Firefox/firefox.exe"; // May not be necessary FirefoxOptions options = new FirefoxOptions(); TimeSpan time = TimeSpan.FromSeconds(10); Driver = new FirefoxDriver(service, options, time); return Driver; } }

So you can use :

IWebDriver driver = FirefoxInitialise.Init();


Intente colocar geckodriver.exe en su ruta: C: / Users / YourName / Documents / Visual Studio 2013 / Projects / seleniump / seleniump / bin / Debug

usted puede encontrar geckodriver.exe en este enlace:

https://github.com/mozilla/geckodriver/releases


Seguí recibiendo este error también y lo único que pude hacer para finalmente solucionarlo (no estoy seguro si es la mejor respuesta para todos los que tienen este problema) fue que coloqué el geckodriver.exe en mi directorio principal de la Biblioteca, luego abrí el webdriver.py :

/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/selenium/webdriver/firefox/webdriver.py

encontró la línea donde dice: executable_path="geckodriver", firefox_options=None,

y lo cambió a:

executable_path="/Library/geckodriver", firefox_options=None


Si incluye geckodriver.exe en su proyecto y lo copia en su directorio de destino cuando compila, el controlador de red funciona como lo hizo en versiones anteriores.


Si tiene el ejecutable en la variable de entorno de ruta, probablemente signifique que no tiene permiso para acceder a él. Como solución, intente ejecutar Visual Studio como administrador.

O podrías moverlo a algún lugar que tenga permiso. P.ej:

var service = FirefoxDriverService.CreateDefaultService(@"D:/tmp/Binaries"); service.FirefoxBinaryPath = FirefoxBinary; var options = new FirefoxOptions(); options.SetPreference("browser.private.browsing.autostart", true); _driver = new FirefoxDriver(service, options, TimeSpan.FromSeconds(30));

Allí puse los binarios en D:/tmp/Binaries/ y lo especifiqué en el código para verificar allí al geckodriver.