【问题标题】:How to invoke firefox browser installed in other driver than C drive using Selenium?如何使用 Selenium 调用安装在 C 驱动器以外的其他驱动程序中的 firefox 浏览器?
【发布时间】:2017-09-01 13:06:27
【问题描述】:

如何使用 Selenium 调用安装在“C”驱动之外的其他驱动中的 Firefox 浏览器?

我将 Firefox 安装在 D 驱动而不是 C 驱动。有没有办法在这种情况下使用 selenium 调用浏览器?

编辑 1:

我不关心司机的位置。我只关心浏览器的安装位置,希望你理解

【问题讨论】:

  • 你需要访问 geckodriver,而不是 firefox 驱动
  • 你无法访问它吗
  • 你还没有提到你正在使用的Selenium BindingJavaPythonC#JavaScriptRubyPerl
  • 我知道我们需要使用 gecko 来启动 firefox。如果浏览器安装的位置不在C盘怎么办,请参考Edit1
  • 请参阅:How do I do X? SO 的期望是,提出问题的用户不仅会进行研究以回答他们自己的问题,还会分享研究、代码尝试和结果。这表明您已经花时间尝试帮助自己,它使我们免于重复明显的答案,最重要的是它可以帮助您获得更具体和相关的答案!另见:How to Ask

标签: selenium firefox selenium-webdriver invoke selenium-firefoxdriver


【解决方案1】:

对于 C#

创建一个名为 Drivers 的文件夹。添加所有你想要的驱动程序,chromedriver、gecko、IE、phantom 等等。将每个设置为“始终复制”,以便它进入您的 bin 目录。

然后创建 GetBasePath 方法并相应地调用它。我还将创建一个 switch 语句并调用您想要使用的任何驱动程序。

    ex:
    _webDriver = new InternetExplorerDriver(Path.Combine(GetBasePath, @"Drivers\"));

 ChromeOptions options = new ChromeOptions();
 options.AddArguments("--start-maximized");
 options.AddUserProfilePreference("credentials_enable_service", false);
 _webDriver = new ChromeDriver(Path.Combine(GetBasePath, @"Drivers\"), options, TimeSpan.FromMinutes(3));



        public static string GetBasePath
    {
        get
        {
            var basePath =
                Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
            return basePath;
        }
    }

【讨论】:

    【解决方案2】:

    Firefox 必须安装在默认位置,例如 ->(c:/program files/mozilla firefox ) 如果 firefox 安装在其他位置,则 selenium 会显示错误。如果您想在任何其他地方使用 firefox,请使用以下代码:-

    File pathToBinary = new File("C:\\user\\Programme\\FirefoxPortable\\App\\Firefox\\firefox.exe");
    FirefoxBinary ffBinary = new FirefoxBinary(pathToBinary);
    FirefoxProfile firefoxProfile = new FirefoxProfile();       
    WebDriver driver = new FirefoxDriver(ffBinary,firefoxProfile);
    

    C:\user\Programme\FirefoxPortable\App\Firefox\firefox.exe-->用你的路径替换这个路径

    【讨论】:

      【解决方案3】:

      尝试FirefoxBinary 实现它的java代码

      File pathBinary = new File("Your path of firefox driver");
      FirefoxBinary firefoxBinary = new FirefoxBinary(pathBinary);
      FirefoxProfile firefoxProfile = new FirefoxProfile();       
      WebDriver driver = new FirefoxDriver(firefoxBinary, firefoxProfile)
      

      【讨论】:

        猜你喜欢
        • 2018-04-02
        • 1970-01-01
        • 1970-01-01
        • 2017-12-07
        • 2017-04-27
        • 1970-01-01
        • 2019-02-22
        • 2014-12-26
        • 1970-01-01
        相关资源
        最近更新 更多